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