mybatis 使用if 判斷字串

2021-10-05 06:41:16 字數 2031 閱讀 4188

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...