mybatis批量条件更新

    推荐使用如下写法,其中<trim>中的内容是要更新的字段值
update content_channel
<trim prefix="set" suffixOverrides=",">
    <trim prefix="channel_sort = case" suffix="end,">
        <foreach collection="channelList" item="i" index="index">
            <if test="i.channelSort!=null">
                when id=#{i.id} then #{i.channelSort}
            </if>
        </foreach>
    </trim>
</trim>
where id in
<foreach collection="channelList" index="index" item="item" separator="," open="(" close=")">
    #{item.id}
</foreach>

如果使用以下写法,效率较低,而且一次性执行多条sql,容易造成堵塞,出错后不回滚,且 数据库链接语句中要注意:这种方法必须在配置连接数据库url后面带一个参数 &allowMultiQueries=true,表示允许批量操作,例 jdbc:mysql://localhost:3306/mysqlTest?characterEncoding=utf-8&allowMultiQueries=true
————————————————

<update  id="updateNewStock" parameterType="java.util.List">
        <foreach collection="list" item="item" open="" close="" separator=";">
            UPDATE content_channel
            <set>
                channelSort=#{item.stock}
            </set>
            <where>
                id= #{item.id}
            </where>
        </foreach>
 </update>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值