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 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料