van_cc 2020-09-29 14:58 采纳率: 78.6%
浏览 107
已采纳

批量操作时应该在java里对删除条件遍历还是应该把删除条件放到list请求数据库?

如题所示。有一个对表单进行批量操作的接口,是利用id作条件对数据库进行update操作。这时候应该将条件id遍历然后循环去更新数据库还是应该放到list里面作为in的条件一次性更新数据库呢?

前提是数据量比较小,时间差异不大。这两种方法各有什么好处或者没区别?

  • 写回答

3条回答 默认 最新

  • 我最爱晓曼了 2020-09-29 17:57
    关注
    <update id="updateBatch" parameterType="java.util.List">
            update mysql_table
            <trim prefix="set" suffixOverrides=",">
                <trim prefix="status =case" suffix="end,">
                    <foreach collection="list" item="item" index="index">
                         when id=#{item.id} then #{item.status}
                    </foreach>
                </trim>
            </trim>
            where id in
            <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
                #{item.id,jdbcType=BIGINT}
            </foreach>
     </update>
    

    个人认为这样比较好,第一种多次数据连接和释放会造次连接超时等问题。第二种比较适合

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测