mybatis批量更新(mySQL) 常见问题(一)
mybatis批量更新(mySQL) 常见问题(一)
IsLearning 发表于8个月前
mybatis批量更新(mySQL) 常见问题(一)
  • 发表于 8个月前
  • 阅读 55
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: Mybatis映射文件中的sql语句不允许 ";"

 

<update id="updateBatch" parameterType="java.util.List">

<foreach collection="list" item="item" index="index" separator=";"

  open="" close="">

  update REGION_CODE set

    CODE=#{item.Code,jdbcType=VARCHAR},

    NAME=#{item.Name,jdbcType=VARCHAR}

    where ID = #{item.id,jdbcType=DECIMAL}

</foreach>

</update>

这样直接报错,因为Mybatis映射文件中的sql语句不允许 ; 符号。按照可行的case when处理方式,Mybatis映射文件书写方式如下:

<update id="updateBatch" parameterType="java.util.List">

  update REGION_CODE set

    CODE=

  <foreach collection="list" item="item" index="index" separator=" " open="case ID" close="end">

      when #{item.id,jdbcType=DECIMAL} then #{item.Code,jdbcType=VARCHAR}

  </foreach>

  ,NAME=

  <foreach collection="list" item="item" index="index" separator=" " open="case ID" close="end">

      when #{item.id,jdbcType=DECIMAL} then #{item.Name,jdbcType=VARCHAR}

  </foreach>

  where ID in

  <foreach collection="list" index="index" item="item" separator="," open="(" close=")">

      #{item.id,jdbcType=DECIMAL}

  </foreach>

</update>

      至此,批量更新功能完成。

共有 人打赏支持
粉丝 2
博文 2
码字总数 0
×
IsLearning
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: