mybatis if標(biāo)簽判斷不生效的解決方法
實際需求
<if test='computationRule == ’1’'> FROM app_sz_bbb a</if><if test='computationRule == ’2’'> FROM app_ccc a</if>
這種情況不生效,
原因:mybatis是用OGNL表達(dá)式來解析的,在OGNL的表達(dá)式中,’0’會被解析成字符,java是強類型的,char 和 一個string 會導(dǎo)致不等,所以if標(biāo)簽中的sql不會被解析。
先說怎么解決
三種:
加 .toString()
<if test='computationRule == ’1’.toString()'> FROM app_sz_bbb a</if><if test='computationRule == ’2’.toString()'> FROM app_ccc a</if>
choose when 標(biāo)簽代替
<choose> <when test='computationRule == ’1’'> FROM app_sz_bbb a </when> <otherwise> FROM app_sz_bbb a </otherwise> </choose>
單引號 換成雙引號
<if test=’computationRule == '1'’> FROM app_sz_bbb a</if><if test=’computationRule == '2'’> FROM app_ccc a</if>MyBatis 中if 標(biāo)簽 判斷字符串不生效
異常sql 的mapper 文件:
<if test='isBound != null and isBound !=’’ and isBound == ’1’'> and box_sid is not null </if><if test='isBound != null and isBound !=’’ and isBound == ’2’'> and box_sid is null </if>
正確sql 的mapper 文件
<if test='isBound != null and isBound !=’’ and isBound == ’1’.toString()'> and box_sid is not null </if><if test='isBound != null and isBound !=’’ and isBound == ’2’.toString()'> and box_sid is null </if>
到此這篇關(guān)于mybatis if標(biāo)簽判斷不生效的解決方法的文章就介紹到這了,更多相關(guān)mybatis if標(biāo)簽判斷不生效內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 實踐sql server存儲過程及觸發(fā)器2. Oracle數(shù)據(jù)庫中臨時表的進(jìn)一步深入研究3. SQL案例學(xué)習(xí)之字符串的合并與拆分方法總結(jié)4. 盤點SqlServer 分頁方式和拉姆達(dá)表達(dá)式分頁5. Windows10系統(tǒng)下安裝MariaDB 的教程圖解6. 目前學(xué)習(xí)到的常用命令之Mariadb7. centos編譯安裝mariadb的詳細(xì)過程8. MariaDB中的thread pool詳細(xì)介紹和使用方法9. Mysql優(yōu)化方法詳細(xì)介紹10. SQL Server解析/操作Json格式字段數(shù)據(jù)的方法實例
