mybatis中<if>標簽bool值類型為false判斷方法
昨天實現(xiàn)一個功能,根據文章的id或者別名查找文章。
起初采用mybatis的Example進行查詢,對參數(shù)artName進行判斷,如果是純數(shù)字就byId查詢,否則就by別名。由于查詢文章的同時,需要關聯(lián)查詢文章分類標簽,所以選擇采用select語句映射的方式查詢,但又不想寫兩個查詢方法,就使用了mybatis中動態(tài)sql。
/** * 查詢文章 * @param artName id 或 別名 * @param byId 如果是 true 則按照id查詢 * 否則 按照別名查詢 * @return */ public Article selectByArtName(@Param(value = "artName") String artName, @Param(value = "byId") Boolean byId);
mapper中定義了一個方法,有artName和byId兩個參數(shù),artName 表示id 或 別名,byId表示是否通過id查詢。
對byId Boolean值進行判斷時,出現(xiàn)false值無效的情況,在百度了一圈發(fā)現(xiàn),普遍采用
<if test="byId != null"> a.id = #{artName} </if>
這種方式,當byId=true時正常執(zhí)行,但為false時不生效。后采用<choose>標簽
<choose> <when test="byId"> a.id = #{artName} </when> <otherwise> a.alias = #{artName} </otherwise> </choose>
byId本身是bool值,不用進行判斷。
注意: byId不用加#{},不然false也會無效,如果加了#{}, 在與其他值進行比較時,
如: #{byId} == true
會報空指針錯誤,如果寫成#{byId} == 'true'
會報Linkhashmap無法轉換成String類型錯誤。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。
相關文章
java后端pageHelper分頁實現(xiàn)方法步驟
這篇文章主要給大家介紹了關于java后端pageHelper分頁實現(xiàn)方法的相關資料,在我們的Java項目中分頁是必不可少的數(shù)據展示頁面,文中通過圖文以及示例代碼介紹的非常詳細,需要的朋友可以參考下2023-07-07spring單元測試下模擬rabbitmq的實現(xiàn)
這篇文章主要介紹了spring單元測試下模擬rabbitmq的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-05-05springboot接收日期字符串參數(shù)與返回日期字符串類型格式化
這篇文章主要介紹了springboot接收日期字符串參數(shù)與返回日期字符串類型格式化,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01SpringMVC?HttpMessageConverter報文信息轉換器
這篇文章主要為大家介紹了SpringMVC?HttpMessageConverter報文信息轉換器,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05