2 qq 28342873 qq_28342873 于 2017.09.19 10:09 提问

我在使用mybatis批量更新mysql数据库的时候,更新不了,我怀疑是集合没有传进foreach 1C

我在使用mybatis批量更新mysql数据库的时候,更新不了,我怀疑是集合没有传进foreach但是list里面确实有值


UPDATE tb_ml3_operate_center
SET
retutn_fee_money = retutn_fee_money + #{it.totalFee},
return_fee_total_money = return_fee_total_money + #{it.totalFee}
WHERE id = #{it.centerId}


7个回答

WAMING5
WAMING5   2017.09.19 16:51

你这个不是批量更新,相当于自己组合一堆SQL一起提交了所以分隔符不能是“,”需要改成 “;”其次需要MySQL支持在数据库连接url增加allowMultiQueries=true

Oh_my_godness
Oh_my_godness   2017.09.19 10:20

可以先试着一组数据进行操作,断点看看,是哪的问题,代码的问题还是sql链接的问题

qq_33727653
qq_33727653   2017.09.19 10:32

这是批量更新? 没看出来 。。。 难道楼主是 多个update联起来的? 想楼上说的这有可能不是数据问题而是连接问题!!!!

desen778
desen778   2017.09.19 11:12

你这批量更新,我服了```````````````````````你这根本就是利用foreach去直接组装出N个update语句,不过按照你的问题,还应该就是数据取得有问题,吧你的foreach的代码也一起贴出来吧

qq_28546593
qq_28546593   2017.09.19 11:32


UPDATE tb_ml3_operate_center
SET
retutn_fee_money = retutn_fee_money + #{it.totalFee},
return_fee_total_money = return_fee_total_money + #{it.totalFee}
WHERE id = #{it.centerId}

qq_28546593
qq_28546593   2017.09.19 11:33
    <foreach collection="list" item="it" index="index" separator=",">

UPDATE tb_ml3_operate_center
SET
retutn_fee_money = retutn_fee_money + #{it.totalFee},
return_fee_total_money = return_fee_total_money + #{it.totalFee}
WHERE id = #{it.centerId}

orangeTop
orangeTop   2017.09.19 15:23

整个sql就不能完整的贴出来?

Csdn user default icon
上传中...
上传图片
插入图片