• Mybatis trim标签


    trim代替where/set标签

    trim 是更灵活用来去处多余关键字的标签,它可以用来实现 where 和 set 的效果。

    <!-- 使用 if/trim 代替 where(判断参数) - 将 User 类不为空的属性作为 where 条件 -->  
    <select id="getUsertList_if_trim" resultMap="resultMap_User">  
        SELECT * 
          FROM user u
        <trim prefix="WHERE" prefixOverrides="AND|OR">  
            <if test="username !=null ">  
                u.username LIKE CONCAT(CONCAT('%', #{username, jdbcType=VARCHAR}),'%')  
            </if>  
            <if test="sex != null and sex != '' ">  
                AND u.sex = #{sex, jdbcType=INTEGER}  
            </if>  
            <if test="birthday != null ">  
                AND u.birthday = #{birthday, jdbcType=DATE}  
            </if>
        </trim>     
    </select>  

    trim 代替 set

    <!-- if/trim代替set(判断参数) - 将 User 类不为空的属性更新 -->  
    <update id="updateUser_if_trim" parameterType="com.yiibai.pojo.User">  
        UPDATE user  
        <trim prefix="SET" suffixOverrides=",">  
            <if test="username != null and username != '' ">  
                username = #{username},  
            </if>  
            <if test="sex != null and sex != '' ">  
                sex = #{sex},  
            </if>  
            <if test="birthday != null ">  
                birthday = #{birthday},  
            </if>  
             
        </trim>  
        WHERE user_id = #{user_id}  
    </update>  

    trim (对包含的内容加上 prefix,或者 suffix 等,前缀,后缀)

    <select id="dynamicTrimTest" parameterType="Blog" resultType="Blog">
            select * from t_blog 
            <trim prefix="where" prefixOverrides="and |or">
                <if test="title != null">
                    title = #{title}
                </if>
                <if test="content != null">
                    and content = #{content}
                </if>
                <if test="owner != null">
                    or owner = #{owner}
                </if>
            </trim>
        </select>

    trim 元素的主要功能是可以在自己包含的内容前加上某些前缀,也可以在其后加上某些后缀,与之对应的属性是 prefix 和 suffix;可以把包含内容的首部某些内容覆盖,即忽略,也可以把尾部的某些内容覆盖,对应的属性是 prefixOverrides 和 suffixOverrides;正因为 trim 有这样的功能,所以我们也可以非常简单的利用 trim 来代替 where 元素的功能。

  • 相关阅读:
    mysql,apache,php的关系
    简析 Tomcat 、Nginx 与 Apache 的区别
    Linux中涉及到环境变量的文件
    如何在Linux启动的时候执行一个命令
    sed的额外用法(网摘)
    shell脚本执行方式
    在rhel7上搭建centos7的yum源
    MYSQL三种安装方式--二进制包安装
    ssh连接不上排查方法总结
    MySQL启动很慢的原因
  • 原文地址:https://www.cnblogs.com/borter/p/9608620.html
Copyright © 2020-2023  润新知