mybatisplus insert返回主键怎么取
时间: 2025-05-18 07:20:25 浏览: 19
### MyBatisPlus 插入操作后获取主键值的方法
在使用 MyBatisPlus 进行数据库插入操作时,可以通过其内置机制轻松获取自动生成的主键值。以下是详细的说明:
#### 自动填充主键的方式
当使用 `save()` 或者 `insert()` 方法完成数据插入后,MyBatisPlus 会自动将生成的主键值赋给对应的实体类属性[^1]。这意味着,在执行插入操作后,可以直接访问实体对象中的主键字段来获取该值。
#### 单条记录插入并获取主键
对于单条记录的插入操作,可以采用以下方式实现:
```java
// 创建实体对象
Test test = new Test();
test.setName("example");
// 调用 save() 方法保存到数据库
boolean result = testService.save(test);
if (result) {
// 如果插入成功,则可以从实体对象中直接获取主键值
System.out.println("插入成功的主键值为:" + test.getId());
}
```
上述代码展示了如何利用 `save()` 方法完成数据插入,并通过检查实体对象的主键字段获得对应值[^3]。
#### Mapper 层 Insert 方法的应用
除了 Service 层提供的 `save()` 方法外,还可以直接调用 Mapper 接口中的 `insert()` 方法达到相同效果:
```java
// 创建实体对象
Test test = new Test();
test.setName("example");
// 调用 Mapper 的 insert 方法
int rowsAffected = testMapper.insert(test);
if (rowsAffected > 0) {
// 若影响行数大于零表示插入成功,此时可从实体对象获取主键值
System.out.println("插入成功的主键值为:" + test.getId());
}
```
这里需要注意的是,`insert()` 方法返回受影响的行数而非具体的主键 ID 值[^2]。然而,正如前面提到的那样,实际的主键值已经被写回到传入的对象实例之中。
#### 批量插入情况下的处理
针对批量插入场景下每一条记录各自产生的唯一标识符需求,同样适用前述逻辑——即每次新增都会更新相应模型内的 id 字段以便后续查询或关联操作之需。
综上所述,无论是单独还是成批地向表里添加新项,只要遵循官方推荐的最佳实践模式即可方便快捷地取得所需的 key information without extra effort.
阅读全文
相关推荐


















