MyBatis执行MySql批量插入数据

时间:2022-06-01 12:37:57

MySQL批量插入数据语法为:

insert into my_table(field1, field2, field3)
values
("f1_vaule1","f2_vaule1","f3_vaule1"),
("f1_vaule2","f2_vaule2","f3_vaule2"),
("f1_vaule3","f2_vaule3","f3_vaule3");

批量插入的多行数据在values后使用逗号隔开。

MyBatis可以使用foreach生成多行数据。

<insert  parameterType="java.util.List">
  insert into my_table(field1, field2, field3)
  values
  <foreach collection="list" item="item" index="index" separator="," >
    (#{item.field1,jdbcType=VARCHAR}, #{item.field2,jdbcType=VARCHAR}, #{item.field3,jdbcType=VARCHAR})
  </foreach>
</insert>

foreach属性:

  • item:每次迭代的元素
  • index:迭代的索引
  • separator:每次迭代语句的分割符