基于mybatisPlus的批量插入
时间: 2023-05-20 08:07:30 浏览: 94
mybatis-plus_batch_insert:mybatis_plus添加批量插入
插入数据量很大时,建议使用 MyBatis-Plus 提供的批量插入接口,示例如下:
```java
public void batchInsert(List<User> userList) {
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
for (User user : userList) {
userMapper.insert(user);
}
sqlSession.commit();
sqlSession.close();
}
```
该示例中,我们通过 `sqlSessionFactory` 获取一个 `SqlSession` 实例,并指定执行类型为批处理(`ExecutorType.BATCH`)。然后,我们获取 `UserMapper` 接口的实例,然后遍历 `userList`,逐个执行插入操作。最后,我们手动提交事务,并关闭 `SqlSession`。
需要注意的是,在 batch 操作过程中,会将所有操作都放入内存中,所以当数据量很大时,需要根据服务器的内存情况调整批量操作的大小,以免出现内存溢出等问题。
同时,需要确保插入操作中没有主键冲突等异常情况,否则需要添加相应的异常处理逻辑。
阅读全文