亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mybatis修改int型數據無法修改成0怎么辦

發布時間:2021-09-05 11:39:32 來源:億速云 閱讀:223 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關mybatis修改int型數據無法修改成0怎么辦的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

mybatis修改int型數據無法修改成0

遇到一個很奇葩的問題,修改user實體里面的一個int型的狀態量1.2.3........都可以修改成功,唯獨參數為0時修改不成功,控制臺也沒有報錯,一切正常。項目用的是ssm框架。最后找到問題是出在mybatis的mapper.xml里了。

場景如下

修改status的值,0為禁用,1為啟用。當傳入的值為0時,就會修改失敗。

過程如下

mybatis修改int型數據無法修改成0怎么辦

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

解決方法

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

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

mybatis int類型值為0判空

問題現狀

項目開發時經常遇到status值的判斷情況,status通常設置為int型,根據不同的status設置不同的條件用于查詢或者編輯。Mybatis中經常設置非空作為if的判斷條件,常見書寫為:

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

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

修改用戶信息

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

問題原因

當status值為0時,Mybatis將作為if條件中的false結果,即不執行此if里面的內容,所以當status=0時,if條件中的設置的過濾或者修改字段及字段取值沒有設置成功,導致查詢和編輯status=0時不成功。

解決方法

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

感謝各位的閱讀!關于“mybatis修改int型數據無法修改成0怎么辦”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

云阳县| 绥芬河市| 西峡县| 财经| 沂南县| 甘洛县| 荔波县| 拉孜县| 贺州市| 桦川县| 横山县| 新干县| 聂拉木县| 闽侯县| 双柏县| 上虞市| 道孚县| 南靖县| 绥德县| 游戏| 哈尔滨市| 肥城市| 岳池县| 雅江县| 申扎县| 名山县| 永州市| 长乐市| 依兰县| 循化| 固安县| 哈密市| 商洛市| 和平县| 霍山县| 城市| 剑河县| 上杭县| 泾阳县| 凤阳县| 盐山县|