mybatis plus 批量插入 id不回填
时间: 2024-01-25 13:05:03 浏览: 137
在MyBatis Plus中,批量插入操作默认是不会回填主键id的。如果你需要回填主键id,可以使用以下两种方式:
1. 使用`com.baomidou.mybatisplus.core.mapper.BaseMapper`的`insertBatchSomeColumn`方法进行批量插入。这个方法会在插入完成后将主键id回填到实体对象中。示例代码如下:
```java
List<User> userList = new ArrayList<>();
// 添加要插入的数据到userList中
// 调用insertBatchSomeColumn方法进行批量插入
baseMapper.insertBatchSomeColumn(userList);
```
2. 在实体类中使用`@TableField`注解的`exist`属性来设置是否回填主键id。将`exist`属性设置为`false`,则在批量插入时不会回填主键id。示例代码如下:
```java
@TableField(value = "id", exist = false)
private Long id;
```
需要注意的是,以上两种方式都需要使用MyBatis Plus的相关功能,因此需要引入相应的依赖。
相关问题
Mybatis-Plus 批量插入数据 最优化
Mybatis-Plus 提供了两种批量插入数据的方式:
1. 使用 `insertBatch` 方法
```
List<User> userList = new ArrayList<>();
// 添加数据到 userList 中
userService.saveBatch(userList, 1000); // 每次插入 1000 条数据
```
这种方式比较简单,但是在数据量较大的情况下,插入速度会比较慢。
2. 使用 `insertBatchSomeColumn` 方法
```
List<User> userList = new ArrayList<>();
// 添加数据到 userList 中
userService.saveBatchSomeColumn(userList, 1000); // 每次插入 1000 条数据
```
这种方式可以通过设置 `insertBatchSomeColumn` 方法的第二个参数来控制每次插入的数据量,而且在数据量较大的情况下,插入速度会比 `insertBatch` 方法快很多。
除此之外,还可以通过设置 `Mybatis-Plus` 的一些配置参数来进一步优化批量插入数据的效率,例如:
1. 关闭二级缓存
```
mybatis-plus.configuration.cache-enabled=false
```
2. 关闭日志
```
mybatis-plus.configuration.log-impl=nothing
```
3. 批量插入数据时关闭自增主键回填
```
mybatis-plus.global-config.db-config.insert-strategy=not_null
```
4. 批量插入数据时关闭主键回填
```
mybatis-plus.global-config.db-config.id-type=none
```
综上所述,批量插入数据的最优化方式,需要根据具体的业务场景和数据量来选择合适的方式和配置参数。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)