1. 程式人生 > >Mybatis的動態sql傳入int型別的0時不會當成引數查詢

Mybatis的動態sql傳入int型別的0時不會當成引數查詢

使用Mybatis時,將signNumber的值設為0,當成引數傳入動態sql語句,程式碼如下:


mapper的xml檔案動態sql如下

發現日誌打印出來的sql語句並沒有將0作為引數查詢


---------------------------------------------------------------------------------------------------------------------------------

查詢後發現是動態sql判斷有問題,因為大多數字段都是String,屬於引用型別,所以都是用not in {null, ''}來判斷傳入的引數是否為空。當傳入的是int型別的數字0時,mybatis似乎會把它當成空字串,所以動態sql沒有拼接上。

修改成!= null之後就能正常傳入0了



注:

實體類將signNumer的型別改為Integer也是會出現這種情況,所以當使用到數字型別欄位的時候為了避免出錯最好還是用!=null