精华内容
下载资源
问答
  • mybatis trim标签的使用

    万次阅读 多人点赞 2018-07-11 17:04:51
    mybatis trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句拼接where、set等前缀
    mybatis的trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 “where“、“set“以及“values(“ 等前缀,或者添加“)“等后缀,可用于选择性插入、更新、删除或者条件查询等操作。

    以下是trim标签中涉及到的属性:
    属性 描述
    prefix 给sql语句拼接的前缀
    suffix 给sql语句拼接的后缀
    prefixOverrides 去除sql语句前面的关键字或者字符,该关键字或者字符由prefixOverrides属性指定,假设该属性指定为"AND",当sql语句的开头为"AND",trim标签将会去除该"AND"
    suffixOverrides 去除sql语句后面的关键字或者字符,该关键字或者字符由suffixOverrides属性指定

    下面使用几个例子来说明trim标签的使用。


    1、使用trim标签去除多余的and关键字

    有这样的一个例子:

    <select id="findActiveBlogLike"
         resultType="Blog">
      SELECT * FROM BLOG 
      WHERE 
      <if test="state != null">
        state = #{state}
      </if> 
      <if test="title != null">
        AND title like #{title}
      </if>
      <if test="author != null and author.name != null">
        AND author_name like #{author.name}
      </if>
    </select>
    

    如果这些条件没有一个能匹配上会发生什么?最终这条 SQL 会变成这样:

    SELECT * FROM BLOG
    WHERE
    

    这会导致查询失败。如果仅仅第二个条件匹配又会怎样?这条 SQL 最终会是这样:

    SELECT * FROM BLOG
    WHERE 
    AND title like ‘someTitle’
    

    你可以使用where标签来解决这个问题,where 元素只会在至少有一个子元素的条件返回 SQL 子句的情况下才去插入“WHERE”子句。而且,若语句的开头为“AND”或“OR”,where 元素也会将它们去除。

    <select id="findActiveBlogLike"
         resultType="Blog">
      SELECT * FROM BLOG 
      <where> 
        <if test="state != null">
             state = #{state}
        </if> 
        <if test="title != null">
            AND title like #{title}
        </if>
        <if test="author != null and author.name != null">
            AND author_name like #{author.name}
        </if>
      </where>
    </select>
    

    trim标签也可以完成相同的功能,写法如下:

    <trim prefix="WHERE" prefixOverrides="AND">
    	<if test="state != null">
    	  state = #{state}
    	</if> 
    	<if test="title != null">
    	  AND title like #{title}
    	</if>
    	<if test="author != null and author.name != null">
    	  AND author_name like #{author.name}
    	</if>
    </trim>
    

    2、使用trim标签去除多余的逗号

    有如下的例子:
    这里写图片描述

    如果红框里面的条件没有匹配上,sql语句会变成如下:

    INSERT INTO role(role_name,) VALUES(roleName,)
    

    插入将会失败。
    使用trim标签可以解决此问题,只需做少量的修改,如下所示:
    这里写图片描述

    其中最重要的属性是

    suffixOverrides=","
    

    表示去除sql语句结尾多余的逗号.


    注:如果你有兴趣的话,可以研究下Mybatis逆向工程生成的Mapper文件。其中也使用了trim标签,但结合了foreach、choose等标签,更多的是牵扯到Criterion的源码研究。不过研究完之后,你将熟练掌握mybatis各种标签的使用,学到Criterion的设计思想,对自己的启发将会很大。

    如果想要了解更多关余trim标签的内容,请移步《trim标签源码解析》。本文参考 Mybatis官方文档

    展开全文
  • mybatis trim

    2020-01-02 14:20:42
    mybatis trim https://blog.csdn.net/wt_better/article/details/80992014 类似于where, 用处为当sql条件语句不合法或者有多余“,”时进行过滤,以使mybatis识别sql语句,进行正常的数据库交互查询。 ...

    mybatis trim
    https://blog.csdn.net/wt_better/article/details/80992014
    类似于where, 用处为当sql条件语句不合法或者有多余“,”时进行过滤,以使mybatis识别sql语句,进行正常的数据库交互查询。

    展开全文
  • 主要介绍了Mybatis Trim标签用法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
  • 主要介绍了mybatis trim标签的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • mybatis trim 标签

    2018-01-03 13:32:21
    mybatis trim 标签@Data @ToString public class Employee { private Integer id; private String last_name; private String emaile; private String gender; private Dept dept; } <select id="getE

    mybatis trim 标签

    @Data
    @ToString
    public class Employee {
    
        private Integer id;
    
        private String last_name;
    
        private String emaile;
    
        private String gender;
    
        private Dept  dept;
    }
    
      <select id="getEmpByConditionIf" parameterType="com.example.demo.entity.Employee" resultType="com.example.demo.entity.Employee">
            SELECT * FROM tbl_employee
            <trim prefix="where" suffixOverrides="and">
                <if test="id!=null">
                id=#{id} AND
                </if>
                <if test="last_name!=null and last_name.trim()!=&quot;&quot;">
                 last_name=#{last_name} AND
                </if>
                <if test="gender==0 or gender==1">
                 gender=#{gender} AND
                </if>
            </trim>
            <!--<where>-->
            <!--<if test="id!=null">-->
                <!--id=#{id}-->
            <!--</if>-->
            <!--<if test="last_name!=null and last_name.trim()!=&quot;&quot;">-->
                <!--AND last_name=#{last_name}-->
            <!--</if>-->
            <!--<if test="gender==0 or gender==1">-->
                <!--AND gender=#{gender}-->
            <!--</if>-->
           <!--</where>-->
        </select>

    总结: prefix :前缀 trim 标签前 需要添加的前缀
    prefixOverrides:前缀覆盖
    suffix:后缀
    suffixOverrides: 后缀覆盖

    展开全文
  • MyBatis trim标签的使用

    2019-07-31 16:26:57
    MyBatis trim标签的使用 https://blog.csdn.net/wt_better/article/details/80992014
  • trim代替where/set标签trim是更灵活用来去处多余关键字的标签,它可以用来实现where和set的效果。SELECT *FROM user uu.username LIKE CONCAT(CONCAT('%', #{username, jdbcType=VARCHAR}),'%')AND u.sex = #{sex, ...
  • MyBatis trim 标签四个属性和其作用 属性名 作用 prefix 添加前缀 prefixOverrides 删除前缀 suffix 添加后缀 suffixOverrides 删除后缀 示例 <trim prefix="(" prefixOverrides="and" suffix=")...
  • mybatistrim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 “where“、“set“以及“values(“ 等前缀,或者添加“)“等后缀,可用于选择性插入、更新、删除或者条件查询等操作。...
  • mybatis trim标签

    2021-03-23 10:49:06
    mybatistrim标签一般用于动态sql语句中去除多余的and关键字,逗号等 以下是trim标签中涉及到的属性: 属性 描述 prefix 给sql语句拼接的前缀 suffix 给sql语句拼接的后缀 prefixOverrides 去除前缀 ...
  • Mybatis trim标签用法

    2019-06-28 10:27:27
    Mybatis-trim标签
  • Mybatis TRIM标签

    2019-11-09 13:37:24
    Mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dt...
  • Mybatis trim标签

    2019-09-24 06:52:10
    trim代替where/set标签 trim是更灵活用来去处多余关键字的标签,它可以用来实现where和set的效果。 <!-- 使用 if/trim 代替 where(判断参数) - 将 User 类不为空的属性作为 where 条件 --> <select id=...
  • mybatis trim标签使用

    2020-03-30 12:55:22
    mybatistrim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 “where“、“set“以及“values(“ 等前缀,或者添加“)“等后缀,可用于选择性插入、更新、删除或者条件查询等操作。...
  • MyBatis开发文档:mybatis - MyBatis 3​mybatis.orgmapper接口开发的四个规范:XxxMapper.xml配置文件的名称命名空间值必须是mapper接口的全类名XxxMapper.xml配置文件中id值必须是接口中的方法名XxxMapper.xml配置...
  • MyBatistrim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 “where“、“set“以及“values(“ 等前缀,或者添加“)“等后缀,可用于选择性插入、更新、删除或者条件查询等操作。...
  • 作者:wt_betterblog.csdn.net/wt_better/article/details/80992014mybatistrim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 “where“、“set“以及“values(“ 等前缀,或者添加“)...
  • mybatis trim 简单使用

    2020-11-19 10:56:34
    trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim> prefix:在trim标签内sql语句加上前缀。 suffix:在trim标签内sql语句加上后缀。 suffixOverrides:指定去除多余的后缀内容,如...
  • MyBatis基础知识点:trim标签的使用 作者:wt_better 来源 : https://blog.csdn.net/wt_better/article/details/80992014MyBatistrim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,356
精华内容 942
关键字:

mybatistrim