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