mybatis test標(biāo)簽如何判斷值是否相等
mybatis可以很方便生成動態(tài)sql,
常用的方式如下:<if test='id != null and id !=’’'> and id != #{id} </if>
但是在實(shí)際使用過程中可能會需要對某個輸入的值做具體判斷,然后根據(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>
鑒于這個mapper查詢接口傳入的參數(shù)為Map<String,Object>類型,如果不進(jìn)行toString的轉(zhuǎn)換的話默認(rèn)是對進(jìn)行進(jìn)行的對比,因此就無法達(dá)到預(yù)期的比較字符串的效果。
mybatis if test標(biāo)簽、動態(tài)sql問題之前用#{0}和#{1}雖然值能傳到后臺但一直不能正確校驗(yàn),怎么改都無法校驗(yàn)成功。
錯誤代碼:這是因?yàn)椋篸ao層(或mapper層)中沒有用@Param(“”)正確傳值。
修改后:mybatis中也把0,1改成@Paran定義的值就可以了:
體驗(yàn):細(xì)節(jié)很重要,不可忽略。
做畢設(shè),為這個問題糾結(jié)兩天,網(wǎng)上沒有人提到這一點(diǎn),耽誤很久,以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. DB2數(shù)據(jù)庫更新執(zhí)行計(jì)劃的幾個常見的方法2. SQL Server 2005日志文件損壞的處理方法3. Mysql入門系列:MYSQL表達(dá)式求值和MYSQL類型轉(zhuǎn)換4. IBM DB2 Connect簡介(1)5. 實(shí)例講解Oracle數(shù)據(jù)庫自動增加ID的sql6. Mysql入門系列:MYSQL創(chuàng)建、刪除和選擇數(shù)據(jù)庫7. 用腳本和查詢主動監(jiān)視Oracle 9i性能8. DB2 9的九大新特性9. 全面解析IBM DB2 9中的查詢優(yōu)化新特性10. 詳解MySQL中的pid與socket
