mybatis update set 多个字段

<update id="updateCustomer" parameterType="com.entrym.domain.Customer">
    UPDATE customer set
    <if test="name!=null">name=#{name,jdbcType=VARCHAR},</if>
    <if test="role!=null">role=#{role,jdbcType=VARCHAR},</if>
    <if test="userId != null">user_id = #{userId,jdbcType=INTEGER},</if>
    <if test="qq != null">qq = #{qq,jdbcType=VARCHAR},</if>
    <if test="mobile != null">mobile = #{mobile,jdbcType=VARCHAR}</if>
    WHERE id =#{id,jdbcType=BIGINT}

如果上面的mobile字段为null,执行下面的SQL语句

UPDATE customer set name=?,role=?,userId=?,qq=? where id=?

where 前面有逗号“,”就会报错

使用trim可以删掉最后字段的逗号“,”
set已被包含在trim中,所以不用重复写了:

<update id="updateCustomer" parameterType="com.entrym.domain.Customer">
    UPDATE customer
    <trim prefix="set" suffixOverrides=",">
      <if test="claimTime!=null">claim_time=#{claimTime,jdbcType=VARCHAR},</if>
      <if test="claimState!=null">claim_state=#{claimState,jdbcType=INTEGER},</if>
      <if test="name!=null">name=#{name,jdbcType=VARCHAR},</if>
      <if test="role!=null">role=#{role,jdbcType=VARCHAR},</if>
      <if test="platformAccount!=null">platform_account=#{platformAccount,jdbcType=VARCHAR},</if>
      <if test="collaborateTime!=null">collaborate_time=#{collaborateTime,jdbcType=VARCHAR},</if>
     <if test="collaborateState!=null">collaborate_state=#{collaborateState,jdbcType=INTEGER},</if>
      <if test="userId != null">user_id = #{userId,jdbcType=INTEGER},</if>
    <if test="qq != null">qq = #{qq,jdbcType=VARCHAR},</if>
    <if test="mobile != null">mobile = #{mobile,jdbcType=VARCHAR}</if>
     </trim>
     WHERE id =#{id,jdbcType=BIGINT}
</update> 

转义字符:

&lt;        小于号        <

&gt;       大于号        >

&amp;    和            &

&apos;   单引号       ’

&quot;    双引号       "

转载于:https://www.cnblogs.com/Alwaysbecoding/p/6580674.html

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值