mybatis 動態sql 中if判斷使用的ognl表示式,現在分3中情況說明並驗證。
傳入的itemcode為引數傳入mybatis
<
if test=
'itemcode != null and itemcode !="" and itemcode =="***" '
>
1、 單個字元的數字型字串
例如:傳入引數 itemcode=「1」
以下寫法不符合判斷
<
if test=
'itemcode != null and itemcode !="" and itemcode =="1" '
>
如果想讓判斷符合條件,可以使用一下兩種寫法
或
2、單個字元的非數字型字串
例如:傳入引數 itemcode=「z」
<
if test=
"itemcode != null and itemcode !='' and itemcode =='z'"
>
會報錯 numberformatexception,如果想讓判斷符合條件如下寫法。
<
if test=
"itemcode != null and itemcode !='' and itemcode =='z'.tostring()"
>
或<
if test=
'itemcode != null and itemcode !="" and itemcode =="z" '
>
3、不是單個字元的字串
例如:傳入引數 itemcode=「張三」
不用.tostring()或單引號變雙引號就會符合條件
<
if test=
"itemcode != null and itemcode !='' and itemcode =='張三'"
>
1.新增依賴
ognl
ognl
2.6.9
2.**示例
public
class
testognl
catch
(exception e)
system.out.
println
(getvalue
("name == \"z\""
, context));
// true
system.out.
println
(getvalue
("name == 'z'.tostring()"
, context));
// true
// 不是單個字元的字串
system.out.
println
(getvalue
("*** == 'man'"
, context));
// true
system.out.
println
(getvalue
("*** == \"man\""
, context));
// true
system.out.
println
(getvalue
("*** == 'man'.tostring()"
, context));
// true
}public
static object getvalue
(string expression,object map)
throws ognlexception
}
mybatis中if標籤判斷字串相等
and company id 結果sql執行的結果卻讓我輕鬆不起來,明明companyid和companyflag這兩個欄位不為空,但是在列印的日誌sql中卻沒有這個條件,將上述sql改為如下所示 and 1 1 and company id and company id 執行sql後發現日誌將an...
mybatis中if標籤判斷字串相等
and mem.membersouce and mem.membersouce in 2 3 咋一看,我的sql沒啥問題,反覆確認後,發現資料也沒問題,於是把日誌列印sql語句,結果sql執行的結果卻讓我輕鬆不起來,明明membersouce這個欄位為2,但是在列印的日誌sql中卻是 mem.mem...
mybatis使用if判斷引數是否為空
1.判斷double型別 probability 在實體類中probability欄位是double型別 2.判斷integer型別 face value 在實體類中facevalue欄位是integer型別 3.判斷string型別 coupon name 在實體類中couponname是stri...