mybatisplus 高效批量插入
时间: 2023-06-28 11:15:18 浏览: 124
MyBatis-Plus 提供了一个高效的批量插入方法 `insertBatchSomeColumn(List<T> entityList)`,可以一次性向数据库插入多条数据。该方法可以利用 JDBC 的 `addBatch()` 和 `executeBatch()` 方法实现批量插入。
使用该方法需要注意以下几点:
1. 实体类需要继承 `com.baomidou.mybatisplus.extension.activerecord.Model` 类。
2. 数据库表需要设置主键生成策略为 `ID_WORKER` 或 `ID_WORKER_STR`。
3. 执行插入操作时需要关闭自动提交,开启事务。
下面是一个示例代码:
```java
List<User> userList = new ArrayList<>();
// 添加多条用户数据到 userList 中
// ...
// 执行批量插入操作
boolean success = new UserService().saveBatch(userList);
if (success) {
// 插入成功
} else {
// 插入失败
}
```
其中 `UserService` 是一个继承了 `com.baomidou.mybatisplus.extension.service.impl.ServiceImpl` 类的服务类,`User` 是一个继承了 `com.baomidou.mybatisplus.extension.activerecord.Model` 类的实体类。
另外,MyBatis-Plus 还提供了一种更底层的批量插入方法 `insertBatch(List<T> entityList, int batchSize)`,可以自定义批量操作的大小。使用方法与上述方法相似。
阅读全文