Mybatis-Plus 批量插入
时间: 2024-01-11 19:17:23 浏览: 83
Mybatis-Plus 提供了一个 `insertBatch` 方法来实现批量插入。具体步骤如下:
1. 创建一个实体对象列表,每个实体对象代表一条要插入的记录。
2. 调用 `insertBatch` 方法,将实体对象列表作为参数传入。
```java
List<User> userList = new ArrayList<>();
userList.add(new User("张三", 20));
userList.add(new User("李四", 25));
userList.add(new User("王五", 30));
userMapper.insertBatch(userList);
```
注意事项:
1. 批量插入的记录数不能太大,否则可能会导致内存溢出,建议不要超过 1000 条。
2. 插入的实体对象中必须包含表中的所有字段,否则会报错。如果某些字段没有值,可以设置为 null 或者使用默认值。
3. 如果插入的实体对象中包含自增主键,插入成功后会将自增主键的值回填到实体对象中。
4. 如果插入的实体对象中包含唯一约束或者索引,插入时可能会出现唯一约束或者索引冲突的情况,需要根据具体情况进行处理。
相关问题
mybatis-plus批量插入
MyBatis-Plus支持批量插入数据。可以使用 `saveBatch` 方法来实现。例如:
```
List<User> userList = new ArrayList<>();
userList.add(new User().setName("Tom").setAge(18));
userList.add(new User().setName("Jack").setAge(20));
boolean result = userMapper.saveBatch(userList);
```
默认情况下,MyBatis-Plus使用的批量插入策略是批量插入100条数据。如果需要修改批量插入的数量,可以在配置文件中配置 `mybatis-plus.global-config.db-config.batch-size` 参数。例如:
```
mybatis-plus:
global-config:
db-config:
# 修改批量插入数量为200
batch-size: 200
```
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 默认会开启事务,且所有的插入操作都会在同一个事务中进行。如果其中某个插入操作失败,则整个批量插入操作都会失败,并且所有的已插入数据都会被回滚。
阅读全文