mytatis foreach 下面的update用法

任第一 2013-02-21 01:39:08
<update id="id" parameterType="Dto">
<foreach item="item" collection="是一个list" >
update test set t.A=#{item.a},t.b='success' where t.id=#{item.id}
</foreach>
</update>

我想这么写。但是报错。假如list里面有两条记录打印Sql如下:
update test set t.A=a,t.b='success' where t.id=1 update test set t.A=a1,t.b='success' where t.id=2

mybatis 中的Sql是不能这么写的。希望大家给我一个思路。
...全文
657 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
基本要牢靠 2013-02-26
我们连sqlserver,mybatis的批量更新写的和你一样,只是{item.a,jdbcType=?} 更新我不知道,批量插入如果不写jdbcType 会报错
  • 打赏
  • 举报
回复
任第一 2013-02-21
引用 2 楼 itdongtian 的回复:
错误贴出来啊
错误就是他把两个update语句拼起来,就发给Oracle了。oracle 肯定不识别,不是循环完一次就发给oracle,循环完第二次就发给oracle。
  • 打赏
  • 举报
回复
任第一 2013-02-21
引用 3 楼 suciver 的回复:
这个必须报错。update test t set t.A=a,t.b='success' where t.id=1。这里的t是什么要是给test的别名的话不能这么写
不好意思写错了。
  • 打赏
  • 举报
回复
suciver 2013-02-21
这个必须报错。update test set t.A=a,t.b='success' where t.id=1。这里的t是什么要是给test的别名的话不能这么写
  • 打赏
  • 举报
回复
基本要牢靠 2013-02-21
错误贴出来啊
  • 打赏
  • 举报
回复
evang_shot 2013-02-21
加一个<if test=""><if>进行判断,这样不知道行不行
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发
加入

8.0w+

社区成员

Java Web 开发
社区管理员
  • Web 开发社区
申请成为版主
帖子事件
创建了帖子
2013-02-21 01:39
社区公告
暂无公告