事实上trim标签有点类似于replace效果。
trim 属性
prefix:前缀覆盖并增加其内容
suffix:后缀覆盖并增加其内容
prefixOverrides:前缀判断的条件
suffixOverrides:后缀判断的条件
比如:
- select b.* from sys_menu b where 1 = 1
- <trim suffix="WHERE" suffixOverrides="AND | OR">
- <if test="id != null and id !='' ">
- AND b.id =#{id}
- </if>
- <if test="name != null">
- AND b.menu_name like #{name}
- </if>
- </trim>
最终sql打印为:
select b.* from sys_menu b where 1 = 1 AND b.menu_name like '' WHERE
从结果可以发现:
- <trim suffix="WHERE" suffixOverrides="AND | OR">
suffix是针对符合suffixOverrides的SQL语句追加后缀suffix值。
总而言之:
- <trim suffix="WHERE" suffixOverrides="AND | OR">
And sqlxxx
最终结果是:
And sqlxxx WHERE
我不是很确认这种用法的具体场景,但是,就目前mybatis的动态sql语句来看的话,很多标签都足够用了。
本文探讨了SQL动态查询中trim标签的作用及使用方法,包括prefix、suffix、prefixOverrides、suffixOverrides等属性的功能,并通过具体示例展示了如何使用trim标签优化SQL语句。

992

被折叠的 条评论
为什么被折叠?



