mybatis if 標簽 判斷單個字符的不生效


需求:

<if test="carrier != null and carrier !='' and carrier !='0'">
    AND CARRIER = #{carrier}

</if>

要在carrier字段不為null,'',和"0"的時候增加以上條件,但是以上當carrier等於"0"時,並不生效。

 

 

 

轉載地址:https://blog.csdn.net/hamov/article/details/78417021

  原因:mybatis是用OGNL表達式來解析的,在OGNL的表達式中,'0'會被解析成字符,java是強類型的,char 和 一個string 會導致不等,

所以if標簽中的sql不會被解析。

解決辦法:

1----換成雙引號

 

<if test='carrier != null and carrier !="" and carrier !="0"'>
    AND CARRIER = #{carrier}

</if>

2----加toSting()

 

<if test="carrier != null and carrier !='' and carrier !='0'.toString()">
    AND CARRIER = #{carrier}
</if>

總結:單個的字符要寫到雙引號里面或者使用.toString()才行!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM