第一种:
业务代码进行for循环进行批次插入
例:
业务代码:impl实现类
public save(){
for(int i=0;i<5;i++){
user = new User();
user.setId("test" + i);
user.setName("name" + i);
user.setA("0");
mapper.insert(user);
}
}
mapper文件:
<insert id="insert">
INSERT INTO t_user (id, name, a)
VALUES(#{id}, #{name}, #{a})
</insert>
第二种:
使用mybatis的xml中foreach循环插入
例:
业务代码:impl实现类
//先将数据存放至list内
public void testInsertBatch() throws Exception {
long start = System.currentTimeMillis();
List<User> list = new ArrayList<>();
User user;
for (int i = 0; i < 10000; i++) {
user = new User();
user.setId("test" + i);
user.setName("name" + i);
user.setA("0");
list.add(user);
}
userService.insertBatch(list);
}
mapper文件:
<insert id="insertBatch">
INSERT INTO t_user
(id, name, a)
VALUES
<foreach collection ="list" item="user" separator =",">
(#{user.id}, #{user.name}, #{user.a})
</foreach >
</insert>
插入数据模板样子:
INSERT INTO t_user
(id, name, a)
VALUES (?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?)......