MyBatis中的trim 標籤 用法

2021-10-07 07:18:56 字數 1949 閱讀 2716

mybatis的trim標籤一般用於去除sql語句中多餘的and關鍵字,逗號,或者給sql語句前拼接 「where「、「set「以及「values(「 等字首,或者新增「)「等字尾,可用於選擇性插入、更新、刪除或者條件查詢等操作。

使用trim標籤去除多餘的and關鍵字

"findactivebloglike"

resulttype=

"blog"

>

select * from blog

where

"state != null"

>

state =

#"title != null"

>

and title like #

"author != null and author.name != null"

>

and author_name like #

如果這些條件沒有乙個能匹配上會發生什麼?最終這條 sql 會變成這樣:

select * from blog

where

這會導致查詢失敗。如果僅僅第二個條件匹配又會怎樣?這條 sql 最終會是這樣:

select * from blog

where

and title like 'sometitle'

你可以使用where標籤來解決這個問題,where 元素只會在至少有乙個子元素的條件返回 sql 子句的情況下才去插入「where」子句。而且,若語句的開頭為「and」或「or」,where 元素也會將它們去除。

select id=

"findactivebloglike"

resulttype=

"blog"

>

select * from blog

"state != null"

>

state =

#"title != null"

>

and title like #

"author != null and author.name != null"

>

and author_name like #

trim標籤也可以完成相同的功能,寫法如下:

"where" prefixoverrides=

"and"

>

"state != null"

>

state =

#"title != null"

>

and title like #

"author != null and author.name != null"

>

and author_name like #

使用trim標籤去除多餘的逗號

如果紅框裡面的條件沒有匹配上,sql語句會變成如下:

insert into role(role_name,) values(rolename,)
插入將會失敗。使用trim標籤可以解決此問題,只需做少量的修改,如下所示:

其中最重要的屬性是

suffixoverrides=

","

Mybatis中的trim標籤 總結

mybatis的trim標籤有四種 prefix,prefixoverrides,suffix,suffixoverridestrim標籤使用 1 trim 有四個屬性 2 prefix,suffix 表示在trim標籤包裹的部分的前面或者後面新增內容 注意 是沒有prefixoverrides,s...

MyBatis動態SQL中trim標籤的使用引數

mybatis動態sql中trim標籤的使用 mybatis 官方文件 對 動態sql中使用trim標籤的場景及效果介紹比較少。事實上trim標籤有點類似於replace效果。trim 屬性 prefix 字首覆蓋並增加其內容 suffix 字尾覆蓋並增加其內容 prefixoverrides 字首...

mybatis動態sql中的trim標籤的使用

trim標記是乙個格式化的標記,可以完成set或者是where標記的功能,如下 1 select from user 0 and name 0 and gender 假如說name和gender的值都不為null的話列印的sql為 select from user wherename xx and ...