MyBatis的trim标签用法

88 阅读2分钟

摘要

本文介绍了MyBatis的trim标签用法,让我们拿下它。

标签属性说明

  • prefix属性

用于在生成的 SQL 语句的开头添加一个指定的字符串。通常用于添加 SQL 语句的关键词,比如 WHERE, SET 等。

  • prefixOverrides 属性

用于移除拼接内容开头的特定字符或字符串。常用于处理不必要的关键词,比如删除多余的 AND 或 OR。

  • suffixOverrides 属性

用于移除拼接内容末尾的特定字符或字符串。常用于处理不必要的关键词,比如删除多余的逗号或 AND。

  • suffix 属性

用于在生成的 SQL 语句末尾添加一个指定的字符串。通常用于添加 SQL 语句的结尾关键词,比如 ORDER BY 或者 GROUP BY 等。

代码示例

增insert into users (id,name,email) values (#{id},#{name},#{email})

<insert id="insertUser">
    INSERT INTO users
    <trim prefix="(" suffix=")" suffixOverrides=",">
        <if test="id != null">
            id,
        </if>
        <if test="name != null">
            name,
        </if>
        <if test="email != null">
            email,
        </if>
    </trim>
    <trim prefix="VALUES (" suffix=")" suffixOverrides=",">
        <if test="id != null">
            #{id},
        </if>
        <if test="name != null">
            #{name},
        </if>
        <if test="email != null">
            #{email},
        </if>
    </trim>
</insert>

 

删delete from users where id = #{id} and name = #{name} and email = #{email}

 

<delete id="deleteUser">
    DELETE FROM users
    <trim prefix="WHERE" suffixOverrides="AND">
        <if test="id != null">
            AND id = #{id}
        </if>
        <if test="name != null">
            AND name = #{name}
        </if>
        <if test="email != null">
            AND email = #{email}
        </if>
    </trim>
</delete>

 

改update users set name = #{name}, email = #{email} where id = #{id}

 

<update id="updateUser">
    UPDATE users
    <trim prefix="SET" suffixOverrides=",">
        <if test="name != null">
            name = #{name},
        </if>
        <if test="email != null">
            email = #{email},
        </if>
    </trim>
    <trim prefix="WHERE" suffixOverrides="AND">
        <if test="id != null">
            AND id = #{id}
        </if>
    </trim>
</update>

查select * from users where id = #{id} and name = #{name} and email = #{email}

<select id="selectUsers" resultType="User">
    SELECT * FROM users
    <trim prefix="WHERE" suffixOverrides="AND">
        <if test="id != null">
            id = #{id} AND
        </if>
        <if test="name != null">
            name = #{name} AND
        </if>
        <if test="email != null">
            email = #{email} AND
        </if>
    </trim>
</select>

总结

以上我们通过编码示范来展开了解了mybatis的trim标签在增删改查的应用,从而简化了参数动态拼接情况对于if标签的生硬写法,赶紧应用到你们的项目中吧。

关注公众号:咖啡Beans

在这里,我们专注于软件技术的交流与成长,分享开发心得与笔记,涵盖编程、AI、资讯、面试等多个领域。无论是前沿科技的探索,还是实用技巧的总结,我们都致力于为大家呈现有价值的内容。期待与你共同进步,开启技术之旅。