mybatisplus保存数据返回id
时间: 2025-04-19 12:38:34 浏览: 32
### 使用 MyBatisPlus 插入记录并获取生成的主键
当使用 MyBatisPlus 进行数据库操作时,可以通过配置实体类来实现插入新纪录后自动获取由数据库生成的主键。具体做法是在实体类中通过 `@TableId` 注解指定主键字段及其生成策略。
对于 MySQL 数据库而言,通常会采用自增方式作为主键生成机制,在这种情况下只需要设置 `type=IdType.AUTO` 即可[^2]:
```java
package com.itheima.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("tb_user")
public class User {
@TableId(type = IdType.AUTO)
private Integer id;
}
```
而对于 Oracle 数据库,则可以利用序列(Sequence)来自动生成唯一标识符,并且确保每次只增加一次。可以在创建表的时候定义列属性为 `GENERATED BY DEFAULT ON NULL AS IDENTITY PRIMARY KEY` 来启用此特性[^3]。
为了能够在执行插入操作之后立即得到刚刚产生的主键值,MyBatisPlus 提供了一个非常方便的方法——调用 `save()` 方法保存对象实例的同时也会填充该对象中的主键属性。因此开发者无需额外编写 SQL 查询语句去检索最新插入的数据所对应的主键编号。
下面给出一段简单的 Java 代码片段用于展示如何完成上述过程:
```java
User user = new User();
user.setName("testName");
// 调用 save() 方法不仅会向数据库写入一条新的用户信息,
// 同时还会把数据库端分配给这条记录的主键赋值给当前的对象成员变量 'id'
boolean result = userService.save(user);
System.out.println("The inserted record's primary key is:" + user.getId());
if (result){
System.out.println("Insert successfully.");
} else{
System.out.println("Failed to insert.");
}
```
阅读全文
相关推荐


















