trim标记是一个格式化的标记,可以完成set或者是where标记的功能
第一种情况:set 标记
select * from user
<trim prefix="WHERE" prefixoverride="AND|OR">
<if test="name != null">AND name=#{name}</if>
<if test="sex!= null">AND sex=#{sex}</if>
</trim>
假如说name和sex的值都不为null的话,打印的SQL为:
select * from user where name = 'xx' and sex='xx'
在where与name之间仅仅是存在一个空格,是不存在第一个and。trim标签中prefix属性表示前缀,prefixoverride属性表示去掉第一个AND或者OR
第二种情况:where 标记
update user
<trim prefix="set" suffixoverride="," suffix=" where id = #{id} ">
<if test="name != null">name=#{name},</if>
<if test="sex != null">sex=#{sex},</if>
</trim>
假如说name和age的值都不为null的话,打印的SQL为:
update user set name='xx',sex='xx' where id='xx'
在sex='xx'与where之间仅仅存在一个空格,二者之间不存在逗号。trim标签中prefix属性表示前缀,suffixoverride属性表示去掉最后一个逗号(,),suffix属性表示后缀
本文介绍了Mybatis动态sql中的trim标签用法,包括在set和where标记中的应用场景。trim标签能实现SQL语句的格式化,如自动处理前缀、后缀以及替换特定字符。在set场景下,当多个条件不为空时,trim能够确保正确的AND连接,避免多余的AND。在where场景中,trim可以处理最后的逗号,使SQL语句更加整洁。
2003

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



