mybatis insert multiple rows into DM database

爱必应

方式一:
<insert id="xx" parameterType="com.xx.xx">
  insert into table xx(field1, field2)
  <foreach collection="list" item="item" index="index" separator="union all">
  select value1,value2 from dual
  </foreach>
</insert>

注意:批量插入一定要注意防止Exceed max parameters permit(2048)这个SQLException。
如果出现这个异常,解决办法:可以分批插入,例如使用ListUtils.partition将List分成多个subList,再循环去执行insert操作。
只是要注意的一点是,分subList是一定要考虑insert语句中使用的参数个数,参数个数*subList个数不能超过2048,否则还是会报错。

方式二:
<insert id="xx" useGeneratedKeys="false">
  insert into table xx(field1, field2)
  select field1 ,field2
  from table XX
</insert>

注意:要指定 useGeneratedKeys="false"

声明:本站所有资源均由网友分享,如有侵权内容,请在文章下方留言,本站会立即处理。

推荐:
BearBin_:#明日方舟# #生于黑夜# DM-7三人

#明日方舟# #生于黑夜# D…

原文链接:,转发请注明来源!

发表评论