mybatis中if標(biāo)簽判斷字符串相等

今日按需求在mapper.xml中修改完一條sql的條件,感覺很輕松,如下所示:

<if test="companyId != null and companyId !='' ">  
    <if test="companyFlag == '1'">   
        AND COMPANY_ID = #{companyId,jdbcType=VARCHAR}  
    </if>  
    <if test="companyFlag == '0'">   
        AND COMPANY_ID != #{companyId,jdbcType=VARCHAR}  
    </if> 
</if>

結(jié)果sql執(zhí)行的結(jié)果卻讓我輕松不起來,明明companyId和companyFlag這兩個(gè)字段不為空,但是在打印的日志sql中卻沒有這個(gè)條件,將上述sql改為如下所示:

<if test="companyId != null and companyId !='' ">  
    and 1 = 1
    <if test="companyFlag == '1'">   
        AND COMPANY_ID = #{companyId,jdbcType=VARCHAR}  
    </if>  
    <if test="companyFlag == '0'">   
        AND COMPANY_ID != #{companyId,jdbcType=VARCHAR}  
    </if> 
</if>

執(zhí)行sql后發(fā)現(xiàn)日志將and 1 = 1 打印出來了,還是沒有COMPANY_ID這個(gè)條件,于是意識(shí)到是companyFlag的判斷條件出了問題,在網(wǎng)上一頓搜索后,發(fā)現(xiàn)了說明:
mybatis 映射文件中,if標(biāo)簽判斷字符串相等
兩種方式:因?yàn)閙ybatis映射文件,是使用的ognl表達(dá)式,所以在判斷字符串sex變量是否是字符串Y的時(shí)候使用

<test="sex=='Y'.toString()">或者<test = 'sex== "Y"'>

將自己的sql改為:

<if test="companyId != null and companyId !='' ">  
    <if test="companyFlag == '1'.toString() ">   
        AND COMPANY_ID = #{companyId,jdbcType=VARCHAR}  
    </if>  
    <if test="companyFlag == '0'.toString() ">   
        AND COMPANY_ID != #{companyId,jdbcType=VARCHAR}  
    </if> 
</if>

再次調(diào)用sql,則條件正??捎昧?。


作者:chengsi101
來源:CSDN
原文:https://blog.csdn.net/chengsi101/article/details/78804224
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲(chǔ)過程以及高級(jí)映射的優(yōu)秀的...
    笨鳥慢飛閱讀 6,273評(píng)論 0 4
  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時(shí),會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 6,004評(píng)論 0 9
  • MyBatis 理論篇 [TOC] 什么是MyBatis ?MyBatis是支持普通SQL查詢,存儲(chǔ)過程和高級(jí)映射...
    有_味閱讀 3,185評(píng)論 0 26
  • 編寫日志輸出環(huán)境配置文件 在開發(fā)過程中,最重要的就是在控制臺(tái)查看程序輸出的日志信息,在這里我們選擇使用 log4j...
    我沒有三顆心臟閱讀 6,922評(píng)論 0 33
  • 這部分主要是開源Java EE框架方面的內(nèi)容,包括Hibernate、MyBatis、Spring、Spring ...
    雜貨鋪老板閱讀 1,571評(píng)論 0 2

友情鏈接更多精彩內(nèi)容