批量插入sql语句:
INSERT INTO table (field1,field2,field3) VALUES ('a',"b","c"), ('a',"b","c"),('a',"b","c")
mybatis通过foreach循环拼装了如上的sql语句。
一、xml
1 2 35 6 107 8 9 11 AutoId, UserId, NoticedTime12 13 1415 insert into T_XXXRecord (AutoId, UserId, NoticedTime) values16 2217 (#{item.autoid,jdbcType=BIGINT},18 #{item.userid,jdbcType=BIGINT},19 #{item.noticedtime,jdbcType=TIMESTAMP})20 21
说明:
- mysql批量插入的限制是一次批量:1M
- 我这里插入的List,如上就好,如果是其他结构,查看这篇博客:
- collection属性:
1.如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
2.如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
3.如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map