最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis中如何用tinyint保存Boolean類型

 更新時(shí)間:2022年09月22日 14:33:59   作者:小蘋果1357  
這篇文章主要介紹了mybatis中如何用tinyint保存Boolean類型,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mybatis用tinyint保存Boolean類型

一、boolean類型

MYSQL保存BOOLEAN值時(shí)用1代表TRUE,0代表FALSE,boolean在MySQL里的類型為tinyint(1),

MySQL里有四個(gè)常量:true,false,TRUE,FALSE,它們分別代表1,0,1,0,

mysql> select true,false,TRUE,FALSE;
+------+-------+------+-------+
| TRUE | FALSE | TRUE | FALSE |
+------+-------+------+-------+
| ? ?1 | ? ? 0 | ? ?1 | ? ? 0 |
+------+-------+------+-------+

可以如下插入boolean值:insert into [xxxx(xx)] values(true),當(dāng)然也可以values(1);

MySQL沒有boolean類型。這也是比較奇怪的現(xiàn)象。例:

create table xs
(
? ?id int primary key,
? ?bl boolean
)

這樣是可以創(chuàng)建成功,但查看一下建表后的語句,就會(huì)發(fā)現(xiàn),mysql把它替換成tinyint(1)。也就是說mysql把boolean=tinyInt了。

二、我們的實(shí)體類

可以根據(jù)自己的習(xí)慣直接設(shè)置成boolean也可以使用int,數(shù)據(jù)庫保存時(shí)會(huì)自動(dòng)將true、false轉(zhuǎn)換成1/0。

mybatis中用tinyint保存Boolean類型的時(shí)候,直接使用false和true就可以,mybatis會(huì)自動(dòng)映射。

private Boolean comment ;

但是要注意的是,一般的mapper.xml中寫where的時(shí)候會(huì)判斷

<if test="comment !=null and comment !=''"> ?
? ? comment=#{comment}, ?
</if> ?

但是這里要判斷的時(shí)候就要去掉后邊的不等于空字符串了,應(yīng)該使用如下的判斷

<if test="comment !=null"> ?
? ? comment=#{comment}, ?
</if> ?

這種判空情況很多,boolean、date類型,都不能使用!=''

三、頁面select標(biāo)簽

使用值true、false時(shí)的展示選擇問題

<label class="col-sm-1 control-label padA01">是否是物聯(lián)網(wǎng)表</label>
<div class="col-sm-3">
? ? <select id="isNbMeter" class="form-control">
? ? ? ? <option value=true selected>是</option>
? ? ? ? <option value=false>否</option>
? ? </select>
</div>

選擇后,保存上傳,不需要什么處理,直接保存值為boolean類型,與實(shí)體類一致,mysql自動(dòng)轉(zhuǎn)換成int型保存。

但是頁面展示時(shí),此類型的賦值展示跟其他值不一樣:

$("#installDate").val("");
$("#inUseMeter").val=true;
$("#inUseMeter").find("option[value=true]").attr("selected",true);
$("#isNbMeter").val=true;
$("#imei").val("");
$("#meterState").val(1);

存在問題:

當(dāng)select值設(shè)為true后,在對(duì)他設(shè)為false不起作用,值還是true,沒有改變,不知什么原因?

$("#inUseMeter").val=false;
$("#inUseMeter").find("option[value=false]").attr("selected",true);

第一次設(shè)為true后,在設(shè)為false不再起作用

mybatis更新時(shí)如果數(shù)據(jù)類型為boolean型遇到的問題

系統(tǒng)框架使用SSM當(dāng)更新的數(shù)據(jù)類型為boolean時(shí)使用if標(biāo)簽判斷不能判斷時(shí)段是否為空,只判斷字段是否等于null

<if test="flag != null">
? ?flag = #{flag,jdbcType=TINYINT},
</if>

否則當(dāng)字段為false時(shí),不能更新。

因?yàn)樵趍ybatis底層當(dāng)傳入進(jìn)來的字段沒有默認(rèn)值的時(shí)候是空也就是false,你傳入進(jìn)來的字段值為false,在xml中的if判斷就會(huì)轉(zhuǎn)換為‘’,導(dǎo)致修改不成功這個(gè)字段的值。

所以在修改boolean類型字段的時(shí)候只需要判斷是否為null就行了

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringCloud集成Micrometer Tracing的代碼工程

    SpringCloud集成Micrometer Tracing的代碼工程

    Micrometer Tracing 是一個(gè)用于微服務(wù)架構(gòu)的追蹤庫,它提供了一種簡單而強(qiáng)大的方式來收集和報(bào)告分布式系統(tǒng)中的性能和調(diào)用鏈信息,Micrometer Tracing 旨在幫助開發(fā)者和運(yùn)維人員理解微服務(wù)之間的交互,本文給大家介紹了如何在 Spring Cloud 集成 Micrometer Tracing
    2024-12-12
  • Java JSch遠(yuǎn)程執(zhí)行Shell命令的方法

    Java JSch遠(yuǎn)程執(zhí)行Shell命令的方法

    本文主要介紹了Java JSch遠(yuǎn)程執(zhí)行Shell命令,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 快速解決idea @Autowired報(bào)紅線問題

    快速解決idea @Autowired報(bào)紅線問題

    這篇文章主要介紹了快速解決idea @Autowired報(bào)紅線問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Javaweb 定時(shí)器功能代碼實(shí)例

    Javaweb 定時(shí)器功能代碼實(shí)例

    這篇文章主要介紹了Javaweb 定時(shí)器功能代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 一文帶你深入了解Java8 Stream流式編程

    一文帶你深入了解Java8 Stream流式編程

    在實(shí)際項(xiàng)目當(dāng)中,若能熟練使用Java8 的Stream流特性進(jìn)行開發(fā),就比較容易寫出簡潔優(yōu)雅的代碼。本文主要就是基于實(shí)際項(xiàng)目常用的Stream Api流式處理總結(jié),希望對(duì)大家有所幫助
    2023-04-04
  • 解析springboot集成AOP實(shí)現(xiàn)日志輸出的方法

    解析springboot集成AOP實(shí)現(xiàn)日志輸出的方法

    如果這需要在每一個(gè)controller層去寫的話代碼過于重復(fù),于是就使用AOP定義切面 對(duì)其接口調(diào)用前后進(jìn)行攔截日志輸出。接下來通過本文給大家介紹springboot集成AOP實(shí)現(xiàn)日志輸出,需要的朋友可以參考下
    2021-11-11
  • springboot+Oauth2實(shí)現(xiàn)自定義AuthenticationManager和認(rèn)證path

    springboot+Oauth2實(shí)現(xiàn)自定義AuthenticationManager和認(rèn)證path

    本篇文章主要介紹了springboot+Oauth2實(shí)現(xiàn)自定義AuthenticationManager和認(rèn)證path,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 使用Java應(yīng)用程序添加或刪除 PDF 中的附件

    使用Java應(yīng)用程序添加或刪除 PDF 中的附件

    當(dāng)我們?cè)谥谱鱌DF文件或者PPT演示文稿的時(shí)候,為了讓自己的文件更全面詳細(xì),就會(huì)在文件中添加附件,那么如何添加或刪除PDF中的附件呢,今天通過本文給大家詳細(xì)講解,需要的朋友參考下吧
    2023-01-01
  • Java輸入輸出語句舉例詳解(通俗易懂!)

    Java輸入輸出語句舉例詳解(通俗易懂!)

    這篇文章主要給大家介紹了關(guān)于Java輸入輸出語句的相關(guān)資料,作為一種常用的編程語言,Java提供了多種輸入輸出的方式,用于與用戶進(jìn)行數(shù)據(jù)交互或處理文件數(shù)據(jù),需要的朋友可以參考下
    2023-10-10
  • 特殊數(shù)據(jù)結(jié)構(gòu)之使用Java實(shí)現(xiàn)單調(diào)棧示例

    特殊數(shù)據(jù)結(jié)構(gòu)之使用Java實(shí)現(xiàn)單調(diào)棧示例

    這篇文章主要為大家介紹了特殊數(shù)據(jù)結(jié)構(gòu)之使用Java實(shí)現(xiàn)單調(diào)棧示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09

最新評(píng)論

清涧县| 灵川县| 苍山县| 张家港市| 焉耆| 苍山县| 桐梓县| 岫岩| 九龙坡区| 榕江县| 达孜县| 清丰县| 鹿邑县| 寿光市| 盐城市| 永寿县| 汉川市| 牙克石市| 新闻| 璧山县| 上虞市| 德州市| 章丘市| 余干县| 禹城市| 四平市| 肃南| 江达县| 东乡族自治县| 托里县| 错那县| 滕州市| 阳泉市| 万全县| 英吉沙县| 余庆县| 阿鲁科尔沁旗| 宿州市| 叙永县| 依安县| 通城县|