Skip to content

trim

定制 SQL 语句的前缀、后缀,并智能地忽略掉多余的连接符(如 ANDOR 或逗号)。

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>