mybatis參數(shù)String與Integer類型的判斷方式
String與Integer類型的判斷
mybatis寫update時(shí),正常是set了值才會(huì)進(jìn)行update操作
我們一般是這樣寫
<if test="sampleBatchNo != null and sampleBatchNo != ''"> SAMPLE_BATCH_NO =#{sampleBatchNo,jdbcType=VARCHAR}, </if>
1、 String類型是符合的,但是如果是Integer類型的話,mybatis會(huì)將i==0的值也認(rèn)定為空字符串。
所以如果是Integer類型只需要判斷!= null即可
2、如果String類型需要判斷不等于0,則需要寫sampleBatchNo != '0'.toString(),否則會(huì)報(bào)錯(cuò)。
使用<if>標(biāo)簽判斷Integer類型的坑
之前只知道如果是Integer類型,判斷是否傳參的時(shí)候判空就好,因?yàn)?會(huì)被認(rèn)為和空字符''相等。
沒想到還有另外的問題
<if test="req.type != null and req.type = 1"> </if>
注意上面的第二個(gè)條件使用的單個(gè)等號(hào)
此時(shí)不管你req.type傳啥值(0啊,null啊,負(fù)數(shù)?。?,甚至是不傳這個(gè)屬性,都會(huì)符合條件
<if test="req.type != null and req.type == 1"> ? ? ? ? ? ? ? </if>
然后我改成==之后,一切恢復(fù)正常。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java Lambda List轉(zhuǎn)Map代碼實(shí)例
這篇文章主要介紹了Java Lambda List轉(zhuǎn)Map代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03詳解Java中字典樹(Trie樹)的圖解與實(shí)現(xiàn)
Trie又稱為前綴樹或字典樹,是一種有序樹,它是一種專門用來處理串匹配的數(shù)據(jù)結(jié)構(gòu)。本文將利用圖解詳細(xì)講解Trie樹的實(shí)現(xiàn),需要的可以參考一下2022-05-05Mybatis 實(shí)現(xiàn)動(dòng)態(tài)組裝查詢條件,仿SQL模式
這篇文章主要介紹了Mybatis 實(shí)現(xiàn)動(dòng)態(tài)組裝查詢條件,仿SQL模式的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06Mybatis-plus中QueryWrapper的多種用法小結(jié)
本文主要介紹了Mybatis-plus中QueryWrapper的多種用法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04Spring實(shí)現(xiàn)類私有方法的幾個(gè)問題(親測(cè)通用解決方案)
現(xiàn)實(shí)的業(yè)務(wù)場(chǎng)景中,可能需要對(duì)Spring的實(shí)現(xiàn)類的私有方法進(jìn)行測(cè)試。本文給大家分享Spring實(shí)現(xiàn)類私有方法面臨的幾個(gè)問題及解決方案,感興趣的朋友跟隨小編一起看看吧2021-06-06