MyBatis执行MySql批量插入数据
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 id="insertOrUpdate" 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:每次迭代语句的分割符