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

mybatis修改int型數(shù)據(jù)無法修改成0的解決

 更新時(shí)間:2021年09月01日 15:37:06   作者:KARL的向日葵  
這篇文章主要介紹了mybatis修改int型數(shù)據(jù)無法修改成0的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mybatis修改int型數(shù)據(jù)無法修改成0

今天遇到一個(gè)很奇葩的問題,修改user實(shí)體里面的一個(gè)int型的狀態(tài)量1.2.3........都可以修改成功,唯獨(dú)參數(shù)為0時(shí)修改不成功,控制臺(tái)也沒有報(bào)錯(cuò),一切正常。項(xiàng)目用的是ssm框架。最后找到問題是出在mybatis的mapper.xml里了。

場景如下

修改status的值,0為禁用,1為啟用。當(dāng)傳入的值為0時(shí),就會(huì)修改失敗。

過程如下

這是mybatis更新語句中的修改狀態(tài)量部分,查閱資料后得知問題出在status='' 這里,如果有這個(gè)條件則當(dāng)參數(shù)為0時(shí)判斷結(jié)果為false,則不會(huì)將0 set進(jìn)數(shù)據(jù)庫。(折騰了一晚上沒有成功配置log4j打印mybatis解析出的sql語句,這里無法展示sql語句)具體原因還得參考源碼才能找到答案,由于本人能力有限這里還是留給以后的自己和各位大牛查找吧。

解決方法

1.去掉status='' 即<if test="status != null">即可

2.改寫成 <if test="status != -1">

mybatis int類型值為0判空

問題現(xiàn)狀

項(xiàng)目開發(fā)時(shí)經(jīng)常遇到status值的判斷情況,status通常設(shè)置為int型,根據(jù)不同的status設(shè)置不同的條件用于查詢或者編輯。Mybatis中經(jīng)常設(shè)置非空作為if的判斷條件,常見書寫為:

<if test="status!=null and status!='' ">
   status = #{status},
<if>

執(zhí)行查詢及編輯當(dāng)status=0時(shí),查詢結(jié)果沒有查出status=0的用戶信息,編輯用戶的狀態(tài)也沒有修改成功,但是后臺(tái)顯示傳值正確(后臺(tái)打印信息如下所示)。

修改用戶信息

{id=22, username=wangzichun, password=******, email=, telephone=45643, roleId=2, status=0}

問題原因

當(dāng)status值為0時(shí),Mybatis將作為if條件中的false結(jié)果,即不執(zhí)行此if里面的內(nèi)容,所以當(dāng)status=0時(shí),if條件中的設(shè)置的過濾或者修改字段及字段取值沒有設(shè)置成功,導(dǎo)致查詢和編輯status=0時(shí)不成功。

解決方法

將status的if條件設(shè)置為<if test="status = -1">或者只寫<if test="status !=null">

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

相關(guān)文章

  • Java BufferedWriter BufferedReader 源碼分析

    Java BufferedWriter BufferedReader 源碼分析

    本文是關(guān)于Java BufferedWriter ,BufferedReader 簡介、分析源碼 對Java IO 流深入了解,希望看到的同學(xué)對你有所幫助
    2016-07-07
  • java中stream的peek()用法詳解

    java中stream的peek()用法詳解

    這篇文章主要介紹了java中stream的peek()用法詳解,peek的作用是
    改變元素的內(nèi)部狀態(tài),對每個(gè)object執(zhí)行 saveInfomation(object, params),然后把結(jié)果收集到一個(gè) List 里,這里涉及到了最終操作,需要的朋友可以參考下
    2024-01-01
  • Mybatis動(dòng)態(tài)查詢字段及表名的實(shí)現(xiàn)

    Mybatis動(dòng)態(tài)查詢字段及表名的實(shí)現(xiàn)

    本文主要介紹了Mybatis動(dòng)態(tài)查詢字段及表名的實(shí)現(xiàn),通過靈活運(yùn)用Mybatis提供的動(dòng)態(tài)SQL功能,我們可以構(gòu)建更加靈活、高效的查詢語句,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2024-01-01
  • Java通過百度API實(shí)現(xiàn)圖片車牌號(hào)識(shí)別

    Java通過百度API實(shí)現(xiàn)圖片車牌號(hào)識(shí)別

    這段時(shí)間做項(xiàng)目需要用java程序進(jìn)行車牌識(shí)別,因此嘗試做了下這個(gè)程序,本代碼功能是通過調(diào)用百度API實(shí)現(xiàn)的,感興趣的可以了解一下
    2021-06-06
  • 一篇文章帶你了解Java容器,面板及四大布局管理器應(yīng)用

    一篇文章帶你了解Java容器,面板及四大布局管理器應(yīng)用

    這篇文章主要介紹了JAVA布局管理器與面板組合代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Java Socket實(shí)現(xiàn)簡易聊天室

    Java Socket實(shí)現(xiàn)簡易聊天室

    這篇文章主要為大家詳細(xì)介紹了Java Socket實(shí)現(xiàn)簡易聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Springboot多種情況yml配置代碼實(shí)例

    Springboot多種情況yml配置代碼實(shí)例

    這篇文章主要介紹了Springboot多種情況yml配置代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • springcloud中RabbitMQ死信隊(duì)列與延遲交換機(jī)實(shí)現(xiàn)方法

    springcloud中RabbitMQ死信隊(duì)列與延遲交換機(jī)實(shí)現(xiàn)方法

    死信隊(duì)列是消息隊(duì)列中非常重要的概念,同時(shí)我們需要業(yè)務(wù)場景中都需要延遲發(fā)送的概念,比如12306中的30分鐘后未支付訂單取消,那么本期,我們就來講解死信隊(duì)列,以及如何通過延遲交換機(jī)來實(shí)現(xiàn)延遲發(fā)送的需求,感興趣的朋友一起看看吧
    2022-05-05
  • Java從零編寫汽車租賃系統(tǒng)全程分析

    Java從零編寫汽車租賃系統(tǒng)全程分析

    這篇文章介紹了Java實(shí)現(xiàn)汽車租賃系統(tǒng)的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • Springboot使用Junit測試沒有插入數(shù)據(jù)的原因

    Springboot使用Junit測試沒有插入數(shù)據(jù)的原因

    這篇文章主要介紹了Springboot使用Junit測試沒有插入數(shù)據(jù)的原因,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04

最新評(píng)論

略阳县| 莱州市| 前郭尔| 曲水县| 永靖县| 扶余县| 黑河市| 泊头市| 友谊县| 天水市| 云霄县| 垣曲县| 扶余县| 吴忠市| 内乡县| 德钦县| 监利县| 汝州市| 修武县| 宿迁市| 海晏县| 祁东县| 图们市| 南华县| 措勤县| 宜良县| 武宁县| 霍州市| 西华县| 象山县| 平凉市| 乌拉特中旗| 沙洋县| 景洪市| 武邑县| 铜鼓县| 崇左市| 泰州市| 漯河市| 崇州市| 尼木县|