mybatis if標籤的學習

2021-10-04 21:32:23 字數 2398 閱讀 9895

mybatis-if標籤的學習 查詢

查詢使用者資訊,三種情況:當只有輸入使用者名稱時,需要根據使用者名稱進行模糊查詢;當只有輸入郵箱時,根據郵箱進行完全匹配;當同時輸入使用者名稱與郵箱時,用這兩個條件去查詢匹配的使用者。

<

if>便簽有乙個必填的屬性test,test的屬性值是乙個符合ognl要求的判斷表示式,

表示式的結果可以是true或者false,初次之外所有的的非0值都為true,只有0為false。

且有如下規則:

1.判斷條件property!=

null或者property=

=null:適用於任何型別的字段,用於判斷屬性值是否為空

2.判斷條件property!=

''或者property=

='':僅適用於string型別的字段,用於判斷是否為空字串

3.and和or:當有多個判斷條件時,適用and或or進行連線,巢狀的判斷可以適用小括號分組。

<

!--改進後的**-->

<

select id=

"selectbyuser" resulttype=

"tk.mybatis.******.model.sysuser"

>

select

id,use_name username,

user_password userpassword,

user_email useremail,

user_info userinfo,

head_img headimg,

create_time createtime

from sys_user

where1=

1<

if test=

"username!=null and username!=''"

>

and user_name like concat(

'%',

#,'%')

>

<

if test=

"useremail!=null and useremail!=''"

>

and user_email =

#>

<

/select

>

更新

<

!--需求實現的**-->

<

update id=

"updatebyidselective"

>

update sys_user

set<

if test=

"username!=null and username!=''"

>

user_name=

#,>

<

if test=

"useremail!=null and useremail!=''"

>

user_email=

#,>

<

if test=

"userinfo!=null and userinfo!=''"

>

user_info=

#,>

<

if test=

"headimg!=null"

>

head_img=

#,>

<

if test=

"createtime!=null"

>

create_time=

#,>

where id=

#<

/update

>

<

insert id=

"insert2" usegeneratedkeys=

"true" keyproperty=

"id"

>

insert

into sys_user

(id,user_name,user_password,

<

if test=

"useremail!=null and ueremail!=''"

>

user_email,

>

user_info,head_img,create_time)

values

(#,#,#,

<

if test=

"useremail!=null and ueremail!=''"

>

#,>

#,#,#)

<

/insert

>

Mybatis if標籤判斷大小

1 if標籤語法 sql語句1 條件表示式 sql語句2 if select 注意 條件表示式中大於號小於號用 gt,lt if lt 0 if selectbyupdatedat resultmap resultmapwithblobs select base column list blob c...

mybatis if標籤判斷不生效的解決方法

實際需求 from app sz bbb a from app ccc a 這種情況不生效,原因 mybatis是用ognl表示式來解析的,在ognl的表示式中,0 會被解析成字元,j a是強型別的,char 和 乙個string 會導致不等,所以if標籤中的sql不會被解析。先說怎麼解決 三種 加...

mybatis if判斷中的特殊符號

在使用mybatis 時我們sql是寫在xml 對映檔案中,如果寫的sql中有一些特殊的字元的話,在解析xml檔案的時候會被轉義,但我們不希望他被轉義,所以我們要使用來解決。是什麼,這是xml語法。在cdata內部的所有內容都會被解析器忽略。如果文字包含了很多的 字元 和 字元 就象程式 一樣,那麼...