mybatis test標簽如何判斷值是否相等
mybatis可以很方便生成動態(tài)sql,
常用的方式如下:<if test='id != null and id !=’’'> and id != #{id} </if>
但是在實際使用過程中可能會需要對某個輸入的值做具體判斷,然后根據(jù)輸入?yún)?shù)的值進行分支處理
<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>類型,如果不進行toString的轉換的話默認是對進行進行的對比,因此就無法達到預期的比較字符串的效果。
mybatis if test標簽、動態(tài)sql問題之前用#{0}和#{1}雖然值能傳到后臺但一直不能正確校驗,怎么改都無法校驗成功。
錯誤代碼:這是因為:dao層(或mapper層)中沒有用@Param(“”)正確傳值。
修改后:mybatis中也把0,1改成@Paran定義的值就可以了:
體驗:細節(jié)很重要,不可忽略。
做畢設,為這個問題糾結兩天,網(wǎng)上沒有人提到這一點,耽誤很久,以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關文章:
1. SQL?Server導入.mdf方法的錯誤處理方法2. Microsoft Office Access添加圖片的方法3. MySQL索引失效十種場景與優(yōu)化方案4. access數(shù)據(jù)庫用sql語句添加字段,修改字段,刪除字段5. ACCESS 調用后臺存儲過程的實現(xiàn)方法6. Microsoft Office Access設置字體顏色的方法7. MySQL的InnoDB索引原理詳解8. html中select語句讀取mysql表中內(nèi)容9. Mybatis insert方法主鍵回填和自定義操作10. 使用SQL語句將相同名的多行字段內(nèi)容拼接(方法詳解)
