mybatis批量更新 返回值不对

javacxzt 2017-06-26 03:00:25
mybatis批量更新返回都是-1,怎么知道其中那些更新成功还是失败。
...全文
1312 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
艾德 2017-06-30
  • 打赏
  • 举报
回复
update应该会返回更改的行数才对。 批量更新的话,很少有需求要知道哪些行更新了。非要知道的话,得事先用select来比较了。一条更新语句是没办法返回哪些行更新了的
云墨浅殇 2017-06-30
  • 打赏
  • 举报
回复
配置文件里 <setting name="defaultExecutorType" value="BATCH" /> BATCH 改为 SIMPLE 试试
艾德 2017-06-30
  • 打赏
  • 举报
回复
你这种应该用悲观锁先锁住需要更新的商品库存行,检查数量是否足够,都足够时再减库存。 注意拿悲观锁的时候要按商品的顺序,不然容易死锁
javacxzt 2017-06-30
  • 打赏
  • 举报
回复
update 标签里用一个update语句是可以正常返回的,用foreach循环后就返回-1,批量更新库存,如果其中一第语句库存不够,也不会报异常,这样数就严重出问题。
那年花 2017-06-30
  • 打赏
  • 举报
回复
批量保存倒有吧 批量更新还没有这样的需求啊。
javacxzt 2017-06-30
  • 打赏
  • 举报
回复
配置文件里 <setting name="defaultExecutorType" value="BATCH" /> BATCH 改为 SIMPLE 试试 update yfb_ypkc set kcsl = kcsl - 3.0 where kcsl - 3.0 > 0 and xtph = 'PC022016120026' 前面查询正常,查询出来后,人为强制将kcsl改为2,那么影响行数是0,返回是成功的。
javacxzt 2017-06-29
  • 打赏
  • 举报
回复
比如一个进销存出库,一个定单有多条明细记录,需要同步更新,如果单条操作很麻烦的
点滴寸土 2017-06-26
  • 打赏
  • 举报
回复
建议还是根据业务来决定更新操作,保证单一职能,方便管理

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧