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条)

报告相同问题?