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

mybatis中如何用tinyint保存Boolean類型

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

mybatis用tinyint保存Boolean類型

一、boolean類型

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

MySQL里有四個常量: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),當然也可以values(1);

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

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

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

二、我們的實體類

可以根據(jù)自己的習慣直接設置成boolean也可以使用int,數(shù)據(jù)庫保存時會自動將true、false轉換成1/0。

mybatis中用tinyint保存Boolean類型的時候,直接使用false和true就可以,mybatis會自動映射。

private Boolean comment ;

但是要注意的是,一般的mapper.xml中寫where的時候會判斷

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

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

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

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

三、頁面select標簽

使用值true、false時的展示選擇問題

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

選擇后,保存上傳,不需要什么處理,直接保存值為boolean類型,與實體類一致,mysql自動轉換成int型保存。

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

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

存在問題:

當select值設為true后,在對他設為false不起作用,值還是true,沒有改變,不知什么原因?

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

第一次設為true后,在設為false不再起作用

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

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

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

否則當字段為false時,不能更新。

因為在mybatis底層當傳入進來的字段沒有默認值的時候是空也就是false,你傳入進來的字段值為false,在xml中的if判斷就會轉換為‘’,導致修改不成功這個字段的值。

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

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

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

    java設計優(yōu)化之單例模式

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

    Java?BigDecimal類的一般使用、BigDecimal轉double方式

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

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

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

    SpringBoot實現(xiàn)無限級評論回復的項目實踐

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

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

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

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

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

    輕松掌握Java代理模式

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

    JWT原理與java操作jwt驗證詳解

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

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

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

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

    相信會java的同學估計都用過replace、replaceAll、replaceFirst這三個函數(shù),可是,我們真的懂他們嗎?下面通過這篇文章大家再來好好學習學習下這幾個函數(shù)。
    2016-09-09

最新評論