mybatis执行批量更新update

网上说Mybatis映射文件中的sql语句不允许 ; 符号,本人用mysql测试确实如此,具体原因没找到!
可以换两种方式可以处理。
      当前数据库是oracle,可以使用case when来拼成一长串sql处理
单字段:
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)
多字段:
UPDATE categories
    SET display_order = CASE id
        WHEN 1 THEN 3
        WHEN 2 THEN 4
        WHEN 3 THEN 5
    END,
    title = CASE id
        WHEN 1 THEN 'New Title 1'
        WHEN 2 THEN 'New Title 2'
        WHEN 3 THEN 'New Title 3'
    END
WHERE id IN (1,2,3)
实际上这种方式对于mysql也有效。
      最开始的时候,想着写一系列并列的更新语句就可以了
    mybatis执行批量更新update

这样直接报错。按照可行的case when处理方式,Mybatis映射文件书写方式如下:
  mybatis执行批量更新update

       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值