mybatis BATCH 批量插入
时间: 2024-05-10 08:12:44 浏览: 29
MyBatis是一个优秀的持久层框架,BATCH批量插入是MyBatis提供的一种高效的数据批量插入方式。BATCH的实现原理是将多个insert语句合并成一个批量插入语句,通过一次数据库访问完成多条记录的插入操作,从而提高插入效率。BATCH插入的使用方式如下:
1. 定义一个Mapper接口方法,用于批量插入数据:
```
public interface UserMapper {
void batchInsert(List<User> userList);
}
```
2. 在Mapper XML文件中,使用foreach标签进行批量插入操作:
```
<insert id="batchInsert" parameterType="java.util.List">
insert into user(id, name, age) values
<foreach collection="list" item="user" separator=",">
(#{user.id}, #{user.name}, #{user.age})
</foreach>
</insert>
```
3. 在Java代码中,调用Mapper接口方法进行批量插入:
```
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.batchInsert(userList);
sqlSession.commit();
} finally {
sqlSession.close();
}
```
注意事项:
1. 批量操作需要关闭自动提交事务,否则每次插入一条记录就会自动提交一次事务,效率非常低。
2. 批量操作需要使用ExecutorType.BATCH类型的SqlSession,该类型SqlSession会缓存多个Statement对象,并在调用flushStatements()方法时一次性将多个Statement对象提交到数据库执行。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)