欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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沒(méi)有boolean類型。這也是比較奇怪的現(xiàn)象。例:

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

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

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

可以根據(jù)自己的習(xí)慣直接設(shè)置成boolean也可以使用int,數(shù)據(jù)庫(kù)保存時(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類型,都不能使用!=''

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

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

<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型保存。

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

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

存在問(wèn)題:

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

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

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

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

系統(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)來(lái)的字段沒(méi)有默認(rèn)值的時(shí)候是空也就是false,你傳入進(jìn)來(lái)的字段值為false,在xml中的if判斷就會(huì)轉(zhuǎn)換為‘’,導(dǎo)致修改不成功這個(gè)字段的值。

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

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

相關(guān)文章

  • java設(shè)計(jì)優(yōu)化之單例模式

    java設(shè)計(jì)優(yōu)化之單例模式

    這篇文章主要為大家詳細(xì)介紹了java設(shè)計(jì)優(yōu)化中的單例模式,深入學(xué)習(xí)java單例模式,感興趣的朋友可以參考一下
    2016-03-03
  • Java?BigDecimal類的一般使用、BigDecimal轉(zhuǎn)double方式

    Java?BigDecimal類的一般使用、BigDecimal轉(zhuǎn)double方式

    這篇文章主要介紹了Java?BigDecimal類的一般使用、BigDecimal轉(zhuǎn)double方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 實(shí)例講解java的純數(shù)字加密解密

    實(shí)例講解java的純數(shù)字加密解密

    本文給大家分享的是一個(gè)java純數(shù)字加密解密技術(shù),加密和解密本身就是一對(duì)共生體,缺一不可,需要的朋友可以參考下
    2015-07-07
  • SpringBoot實(shí)現(xiàn)無(wú)限級(jí)評(píng)論回復(fù)的項(xiàng)目實(shí)踐

    SpringBoot實(shí)現(xiàn)無(wú)限級(jí)評(píng)論回復(fù)的項(xiàng)目實(shí)踐

    本文主要介紹了SpringBoot實(shí)現(xiàn)無(wú)限級(jí)評(píng)論回復(fù)的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 淺談String、StringBuffer和StringBuilder之間的區(qū)別

    淺談String、StringBuffer和StringBuilder之間的區(qū)別

    這篇文章主要介紹了淺談String、StringBuffer和StringBuilder之間的區(qū)別,通過(guò)字面量方式為字符串賦值時(shí),此時(shí)的字符串存儲(chǔ)在方法區(qū)的字符串常量池中,需要的朋友可以參考下
    2023-10-10
  • Java實(shí)現(xiàn)中英文詞典功能

    Java實(shí)現(xiàn)中英文詞典功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)中英文詞典功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 輕松掌握J(rèn)ava代理模式

    輕松掌握J(rèn)ava代理模式

    這篇文章主要幫助大家輕松掌握J(rèn)ava代理模式,什么是靜態(tài)代理?感興趣的小伙伴們可以參考一下
    2016-09-09
  • JWT原理與java操作jwt驗(yàn)證詳解

    JWT原理與java操作jwt驗(yàn)證詳解

    這篇文章主要介紹了JWT原理與java操作jwt驗(yàn)證,詳細(xì)分析了JWT的基本概念、原理與java基于JWT進(jìn)行token驗(yàn)證的相關(guān)操作技巧,需要的朋友可以參考下
    2023-06-06
  • spring boot如何使用spring AOP實(shí)現(xiàn)攔截器

    spring boot如何使用spring AOP實(shí)現(xiàn)攔截器

    本篇文章主要介紹了spring boot如何使用spring AOP實(shí)現(xiàn)攔截器,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • Java中replace、replaceAll和replaceFirst函數(shù)的用法小結(jié)

    Java中replace、replaceAll和replaceFirst函數(shù)的用法小結(jié)

    相信會(huì)java的同學(xué)估計(jì)都用過(guò)replace、replaceAll、replaceFirst這三個(gè)函數(shù),可是,我們真的懂他們嗎?下面通過(guò)這篇文章大家再來(lái)好好學(xué)習(xí)學(xué)習(xí)下這幾個(gè)函數(shù)。
    2016-09-09

最新評(píng)論