zoukankan      html  css  js  c++  java
  • 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 元素的功能。

  • 相关阅读:
    zookeeper 集群安装(单点与分布式成功安装)
    ubuntu下tty1tty5命令控制台无法登录
    (1)《QT+OpenGL学习之我见》初始化窗口及三个重要函数 vs+Qt
    完全免费和开源的权限管理系统
    系统在iis6上部署
    代码生成那点事
    大整数乘法计算
    对字符串和字符数组的理解
    不被严格文档类型支持的元素
    Java实现一个简单的聊天小程序
  • 原文地址:https://www.cnblogs.com/borter/p/9608620.html
Copyright © 2011-2022 走看看