1. 程式人生 > >Mybatis中 if標籤判斷字串

Mybatis中 if標籤判斷字串

在做開發的時候遇到這樣一個問題:當傳入的type的值為y的時候,if判斷內的sql也不會執行。

  <if test="type=='y'">  
        and status = 0   
   </if>

仔細想想:mybatis是使用的OGNL表示式來進行解析的,在OGNL的表示式中,’y’會被解析成字元,因為java是強型別的,char 和 一個String 會導致不等。所以if標籤中的sql不會被解析。

所以,需要解決這個問題,只需要把程式碼修改成:

<if test='type=="y"'>  //注意是雙引號,不是單引號!!!
    and status = 0   
</if> 

就可以執行了,這樣”y”解析出來是一個字串,兩者相等!