mybatis test標(biāo)簽如何判斷值是否相等
mybatis可以很方便生成動(dòng)態(tài)sql,
常用的方式如下:<if test='id != null and id !=’’'> and id != #{id} </if>
但是在實(shí)際使用過程中可能會(huì)需要對某個(gè)輸入的值做具體判斷,然后根據(jù)輸入?yún)?shù)的值進(jìn)行分支處理
<select parameterType='map' resultMap='BaseResultMap'> 。。。。。。。 <choose> <when test='hasAttach.toString() == ’1’.toString()'> having attachCount >= #{hasAttach} </when> <otherwise> having attachCount = #{hasAttach} </otherwise> </choose>
鑒于這個(gè)mapper查詢接口傳入的參數(shù)為Map<String,Object>類型,如果不進(jìn)行toString的轉(zhuǎn)換的話默認(rèn)是對進(jìn)行進(jìn)行的對比,因此就無法達(dá)到預(yù)期的比較字符串的效果。
mybatis if test標(biāo)簽、動(dòng)態(tài)sql問題之前用#{0}和#{1}雖然值能傳到后臺但一直不能正確校驗(yàn),怎么改都無法校驗(yàn)成功。
錯(cuò)誤代碼:
這是因?yàn)椋篸ao層(或mapper層)中沒有用@Param(“”)正確傳值。
修改后:
mybatis中也把0,1改成@Paran定義的值就可以了:

體驗(yàn):細(xì)節(jié)很重要,不可忽略。
做畢設(shè),為這個(gè)問題糾結(jié)兩天,網(wǎng)上沒有人提到這一點(diǎn),耽誤很久,以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 巧用SQL語言在ACCESS數(shù)據(jù)庫中批量替換內(nèi)容2. SQL Server靜態(tài)頁面導(dǎo)出技術(shù)43. Access數(shù)據(jù)庫日常維護(hù)方法(優(yōu)化)4. mybatis 為什么千萬不要使用 where 1=15. Microsoft Office Access設(shè)置小數(shù)位數(shù)的方法6. 數(shù)據(jù)庫相關(guān)的幾個(gè)技能:ACCESS轉(zhuǎn)SQL7. 如何實(shí)現(xiàn)MySQL數(shù)據(jù)庫的備份與恢復(fù)8. MySQL基本調(diào)度策略淺析9. 理解 oracle 的 “l(fā)snrctl status”10. DB2 常用命令小結(jié)

網(wǎng)公網(wǎng)安備