Mybatis-Plus 如何批量插入
时间: 2024-01-11 13:17:23 浏览: 26
Mybatis-Plus 提供了一个方便的 batchInsert 方法来批量插入数据。
示例代码:
```
List<User> userList = new ArrayList<>();
User user1 = new User();
user1.setName("张三");
user1.setAge(18);
userList.add(user1);
User user2 = new User();
user2.setName("李四");
user2.setAge(20);
userList.add(user2);
userService.batchInsert(userList);
```
其中,User 类是实体类,userService 是 UserService 接口的实现类,代码如下:
```
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public void batchInsert(List<User> userList) {
saveBatch(userList);
}
}
```
注意:saveBatch 方法默认每次批量插入的数量为 1000,可以通过设置参数来改变批量插入的数量。例如:
```
saveBatch(userList, 500); // 每次批量插入 500 条数据
```
相关问题
mybatis-plus批量插入
Mybatis-Plus提供了多种方式进行批量插入优化,以下是几种常用的方法:
1. 使用Mybatis-Plus提供的BatchInsert方法进行批量插入,可以大大减少SQL语句的执行次数,提高插入效率。
2. 使用Mybatis-Plus提供的BatchInsertMappedStatement方法进行批量插入,可以将多个插入操作合并为一个SQL语句,减少数据库的IO操作,提高插入效率。
3. 使用Mybatis-Plus提供的BatchInsertSelective方法进行批量插入,可以只插入非空字段,减少插入的数据量,提高插入效率。
4. 使用Mybatis-Plus提供的BatchInsertOrUpdate方法进行批量插入或更新,可以根据主键进行判断,如果存在则更新,不存在则插入,提高插入效率。
总之,Mybatis-Plus提供了多种方式进行批量插入优化,可以根据具体的业务需求选择合适的方法进行优化,提高插入效率。
Mybatis-plus 批量插入
Mybatis-plus 提供了一个 `insertBatch` 方法用于批量插入操作。具体使用方式如下:
```java
List<User> userList = new ArrayList<>();
// 假设有多个 User 对象要插入,都存储在 userList 中
boolean result = userService.saveBatch(userList); // 进行批量插入操作
if(result) {
System.out.println("批量插入成功!");
} else {
System.out.println("批量插入失败!");
}
```
其中,`userService` 是一个使用 Mybatis-plus 自动生成的 Service 类,其继承了 Mybatis-plus 的 `IService` 接口,从而拥有了 `saveBatch` 方法。
需要注意的是,在进行批量插入操作时,Mybatis-plus 默认会开启事务,且所有的插入操作都会在同一个事务中进行。如果其中某个插入操作失败,则整个批量插入操作都会失败,并且所有的已插入数据都会被回滚。