首页 > 移动平台 > 详细

联合主键下的mapper文件对数据库的批量更新

时间:2020-05-12 01:04:29      阅读:155      评论:0      收藏:0      [点我收藏+]

工作中使用到了联合主键,业务需求要在一系列的操作以后进行更新的操作,传统形式(单主键)下的批量更新就有点不好用了。

工作中的业务当然不能拿出来说明了,随便建立一张表,说明一下问题。

表结构如下:

技术分享图片

内部数据如下:

技术分享图片

主要任务是要吧表中的 AMOUNT 字段修改批量修改,那一套的请求、分层、数据库、和mapper生成就省略了。随处都可以找到的。

先上mapper批量更新的语句:

<update id="updateByBatch" parameterType="java.util.List">
    update dcwt_test
    set AMOUNT =
    CASE
    <foreach collection="list" item="item" index="index"> // 此处看一下应该能理解的
      when PARTID=#{item.partid} AND BRESQ=#{item.bresq}
      then #{item.amount}
    </foreach>
    END
    where
    <foreach collection="list" item="item" index="index"> // 主要就是字符串拼接 OR
      (PARTID=#{item.partid} AND BRESQ=#{item.bresq}) 
      <if test="index!=list.size-1"> // 还真没想到这玩意还能这么写的
        OR
      </if>
    </foreach>
</update>

更新结果:

技术分享图片

联合主键下的mapper文件对数据库的批量更新

原文:https://www.cnblogs.com/kingning/p/12873076.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!