1. 程式人生 > >Mybatis if test 字串比較不生效

Mybatis if test 字串比較不生效

<if test="publishType!='2'">
      and t.status='3'
      and t.has_attachment='YES'
</if>

其中publishType為傳來的String型別引數,想比較其不等於字串2,但是判斷不生效

原因:

單引號是char型別,雙引號是string型別!

char表示字元,定義時使用用單引號表示,只能儲存一個字元。

而String表示字串,定義時使用雙引號表示,可以儲存0個或多個字元,其實string型別就是char型別的陣列表現形式。

所以'2'被認為是char型別,和String型別不相等

解決方法:

1.改成雙引號

<if test='publishType!="2"'>
    and t.status='3'
    and t.has_attachment='YES'
</if>

2.加.toString()方法

<if test="publishType!='2'.toString()">
      and t.status='3'
      and t.has_attachment='YES'
</if>