美文网首页
mybatis 实现批量更新

mybatis 实现批量更新

作者: 瞿大官人 | 来源:发表于2019-06-27 14:59 被阅读0次

    序言

    在业务开发阶段,估计我们都会遇到批量更新,而且批量更新中用到最多就是类似以下语句,像这种都是更新的值与条件一致。

    update set xxx=xxx where xxx=xxx;
    

    但是当更新的值与条件不一致的时候,就比如当id=1的时候值为1,id=2的时候值为2,这种sql如何写?

    条件不一致的时候跟新sql写法

    条件不一致更新如下,这里引入了case when语法。

    UPDATE mytable SET
        myfield = CASE id
            WHEN 1 THEN 'value'
            WHEN 2 THEN 'value'
            WHEN 3 THEN 'value'
        END
    WHERE id IN (1,2,3);
    

    mybatis中批量更新

    这里的params就是入参,入参对象含有idvalue属性。需求是id不一致value也不一致。

    update mytable 
            <set>
                <foreach collection="params" item="item" open="myfield = case" close="end">
                    when id = #{item.id} then #{item.value}
                </foreach>,
                status=#{param.status},
            </set>
            WHERE id in
            <foreach collection="ids" item="id" separator="," open="(" close=")">
                #{id}
            </foreach>
    

    相关文章

      网友评论

          本文标题:mybatis 实现批量更新

          本文链接:https://www.haomeiwen.com/subject/wtzxqctx.html