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