Mybatis的prefix和suffix使用

2022-07-15 08:59:32

语法格式

<trimprefix=""suffix=""suffixOverrides=""prefixOverrides=""></trim>

语法说明
prefix:在trim标签内sql语句加上前缀
suffix:在trim标签内sql语句加上后缀

suffixOverrides:指定去除多余的后缀内容
比如:suffixOverrides=”,”,去除trim标签内sql语句多余的后缀”,”
prefixOverrides:指定去除多余的前缀内容

示例代码

<insert id="insertSelective" keyColumn="ID" keyProperty="id" parameterType="cn.com.hwasunsoft.lims.biz.model.CompanyInfo" useGeneratedKeys="true">

<selectKey keyProperty="id" resultType="long"order="BEFORE">select SEQ_SYS_COMPANY_INFO.nextvalfrom dual
</selectKey>

insertinto SYS_COMPANY_INFO
<trim prefix="(" suffix=")" suffixOverrides=",">
  ID,
  <if test="no != null">
    NO,
  </if>
  <if test="name != null">
    NAME,
  </if>
  <if test="postCode != null">
    POST_CODE,
  </if>
  <if test="contactPhone != null">
    CONTACT_PHONE,
  </if>
  <if test="orderPhone != null">
    ORDER_PHONE,
  </if>
  <if test="recordStatus != null">
    RECORD_STATUS,
  </if>
  <if test="createTime != null">
    CREATE_TIME,
  </if>
  <if test="modifyTime != null">
    MODIFY_TIME,
  </if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">#{id},
  <if test="no != null">#{no,jdbcType=VARCHAR},
  </if>
  <if test="name != null">#{name,jdbcType=VARCHAR},
  </if>
  <if test="postCode != null">#{postCode,jdbcType=VARCHAR},
  </if>
  <if test="contactPhone != null">#{contactPhone,jdbcType=VARCHAR},
  </if>
  <if test="orderPhone != null">#{orderPhone,jdbcType=VARCHAR},
  </if>
  <if test="recordStatus != null">#{recordStatus,jdbcType=DECIMAL},
  </if>
  <if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},
  </if>
  <if test="modifyTime != null">#{modifyTime,jdbcType=TIMESTAMP},
  </if>
</trim>
</insert>

如果,没有suffixOverrides=”,”,SQL是错误的
insert into cart (id,user_id,deal_id,) values(1,2,1,);

应为
insert into cart (id,user_id,deal_id) values(1,2,1);

  • 作者:量变决定质变
  • 原文链接:https://blog.csdn.net/nangeali/article/details/81278807
    更新时间:2022-07-15 08:59:32