mybatis中批量插入

Hell125 2012-02-06 03:22:12
数据库是oracle,
mybatis在执行如下的语句
<insert id="regeditMemberList" parameterType="ArrayList">
<selectKey keyProperty="id" resultType="long" order="BEFORE">
select operatorTab_seq.Nextval from dual
</selectKey>
insert into operator_info (id,member_no,pwd,status,operator_type) values
<foreach collection="list" item="item" index="index" separator=",">
(#{id},#{item.memberNo},#{item.pwd},#{item.status},#{item.operatorType})
</foreach>
</insert>
当插入的数据量(list中只插入一条记录),运行OK。
当插入>2条数据的时候,无效的列类型。
查询多个论坛中,据说是mysql+mybatis,运行上面类似代码,能够OK。
求解
...全文
1601 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
leyou_java 2012-08-02
  • 打赏
  • 举报
回复
ORACLE数据库下的批量更新可以这样写,不知道楼主的几个问题都解决了没有,解决了的话贴上来分享下经验
<insert id= "regeditMemberList " parameterType= "ArrayList ">
<selectKey keyProperty= "id " resultType= "long " order= "BEFORE ">
select operatorTab_seq.Nextval from dual
</selectKey>
insert into operator_info (id,member_no,pwd,status,operator_type)(
<foreach collection= "list " item= "item " index= "index " separator= "union all ">
select #{id},#{item.memberNo},#{item.pwd},#{item.status},#{item.operatorType} from dual
</foreach>
)
</insert>
三十七点五度 2012-07-13
  • 打赏
  • 举报
回复
sql server2005这样是不可以的 sql server2008是可以这样批量插入
insert into a (a,b,c,d)
values (0,0,0,0),(0,0,0,0),(0,0,0,0)
数据库版本问题
  • 打赏
  • 举报
回复
表示关注,楼主可以看一下插入时打出的sql语句,应该是错的,我也遇到过
三十七点五度 2012-07-11
  • 打赏
  • 举报
回复
能不能把整个insert语句包在foreach里面
sjzpc040529 2012-06-23
  • 打赏
  • 举报
回复
我也越到和你一样的问题,不知道如何解决,你的问题是怎么解决的

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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