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