trim
定制 SQL 语句的前缀、后缀,并智能地忽略掉多余的连接符(如 AND、OR 或逗号)。
sql
<trim
prefix="前缀"
suffix="后缀"
prefixOverrides="要删除的前缀"
suffixOverrides="要删除的后缀">
SQL片段
</trim>| 属性 | 描述 |
|---|---|
| prefix | 在 trim 包含的内容前添加的文本(仅当内容不为空时)。 |
| suffix | 在 trim 包含的内容后添加的文本(仅当内容不为空时)。 |
| prefixOverrides | 若trim 包含的内容是以该字符串开头的,则将其删除 |
| suffixOverrides | 若 trim 包含的内容是以该字符串结尾的,则将其删除 |
使用场景
提示
trim标签比where标签更加灵活
代替 <where> 标签
<trim>是 <where>、<set> 的底层实现
xml
<trim prefix="WHERE" prefixOverrides="AND |OR ">
<if test="name != null">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
</trim>在该SQL片段签名 在前缀添加WHERE,去除前缀的AND或OR
代替 <set> 标签
在更新操作中,经常需要处理末尾多余的逗号:
xml
<update id="updateUser">
UPDATE users
<trim prefix="SET" suffixOverrides=",">
<if test="userName != null">user_name = #{userName},</if>
<if test="email != null">email = #{email},</if>
</trim>
WHERE id = #{id}
</update>