MyBatis引數條件查詢傳入的值為0時的判斷

2021-10-08 02:35:22 字數 564 閱讀 3333

mybatis條件查詢對欄位判斷是否為空一般為:

and test_value = #

如果傳入引數為integer型別且值為0時,會把0轉為空串

原始碼真實情況是:

mybatis解析的所有sqlnode節點,針對if節點會交給ifsqlnode來處理,進過層層處理,最終都會呼叫ognlops.class類的doublevalue(object value)方法

public static double doublevalue(object value) throws numberformatexception  else  else if (c == boolean.class)  else if (c == character.class)  else 

}}

0和""都呼叫該方法返回的double值都為0.0,在進行比較。

處理方法:

and test_value = #

或者and test_value = #

mybatis傳入多個引數

寫在開頭 還可以通過for來進行遍歷。一 單個引數 public list getxxbeanlist param id string id select t.from tablename t where t.id select 其中方法名和id一致,中的引數名與方法中的引數名一致,這裡採用的是 p...

mybatis 傳入多個引數

一 單個引數 public list getxxbeanlist param id string id select t.from tablename t where t.id select 其中方法名和id一致,中的引數名與方法中的引數名一致,這裡採用的是 param這個引數,實際上 param這...

MyBatis傳入多個引數

一 單個引數 複製 public list getxxbeanlist string xxcode select t.from tablename t where t.id 其中方法名和id一致,中的引數名與方法中的引數名一直,我這裡採用的是 bean是採用的短名字,select 後的字段列表要和b...