mybatis中的<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>说明

insertSelective,insert的区别
如果选择insert 那么所有的字段都会添加一遍即使没有值
但是如果使用inserSelective就会只给有值的字段赋值(会对传进来的值做非空判断)

prefix:在trim标签内sql语句加上前缀。
suffix:在trim标签内sql语句加上后缀。
suffixOverrides:指定去除多余的后缀内容,如:suffixOverrides=",",去除trim标签内sql语句多余的后缀","。
prefixOverrides:指定去除多余的前缀内容

<insert id="insertSelective" parameterType="com.site.blog.my.core.entity.AdminUser">
    insert into tb_admin_user
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="adminUserId != null">
        admin_user_id,
      </if>
      <if test="loginUserName != null">
        login_user_name,
      </if>
      <if test="loginPassword != null">
        login_password,
      </if>
      <if test="nickName != null">
        nick_name,
      </if>
      <if test="locked != null">
        locked,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="adminUserId != null">
        #{adminUserId,jdbcType=INTEGER},
      </if>
      <if test="loginUserName != null">
        #{loginUserName,jdbcType=VARCHAR},
      </if>
      <if test="loginPassword != null">
        #{loginPassword,jdbcType=VARCHAR},
      </if>
      <if test="nickName != null">
        #{nickName,jdbcType=VARCHAR},
      </if>
      <if test="locked != null">
        #{locked,jdbcType=TINYINT},
      </if>
    </trim>
  </insert>
努力学习java的Cherish
原文地址:https://www.cnblogs.com/cherish-code/p/14072282.html