mybatisplus 怎样在出啊如数据后获得主键
时间: 2023-04-05 16:03:01 浏览: 120
在使用 MybatisPlus 插入数据后,可以通过以下方式获取主键:
1. 在实体类中定义一个主键属性,并添加 @TableId 注解,指定主键生成策略为数据库自增。例如:
```java
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
}
```
2. 在插入数据后,通过实体类的主键属性获取主键值。例如:
```java
User user = new User();
user.setName("张三");
user.setAge(20);
userMapper.insert(user);
Long id = user.getId();
```
注意:在插入数据后,MybatisPlus 会自动将生成的主键值回填到实体类的主键属性中。因此,可以直接通过实体类的主键属性获取主键值。
相关问题
servce层获得 mybatisPlus 插入后bigint类型的自增主键
在使用 MybatisPlus 插入数据时,如果表中有自增主键(如 MySQL 中的 bigint 类型的自增主键),可以通过以下方式获取插入后的主键值:
1. 在实体类中使用 @TableId 注解标注自增主键,并设置注解的 type 属性为 IdType.AUTO,示例代码如下:
```java
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
// getter and setter methods
}
```
2. 在 Service 层中使用 MybatisPlus 提供的 save 方法插入数据,示例代码如下:
```java
User user = new User();
user.setName("张三");
user.setAge(20);
userService.save(user);
Long id = user.getId(); // 获取插入后的主键值
```
注意:在插入数据时,如果使用 MybatisPlus 提供的 saveOrUpdate 方法,需要先判断实体类中的自增主键是否为 null,如果不为 null,则认为该数据已存在,会执行更新操作而不是插入操作,此时无法获取插入后的主键值。
servce层获得 mybatisPlus 插入后的自增主键
在 MybatisPlus 中,插入数据时可以通过参数返回值来获取自增主键的值。
在 Service 层中,可以通过以下步骤来获得插入后的自增主键:
1. 在 Mapper 接口中定义插入方法,使用注解 @Insert,同时设置 keyProperty 属性为自增主键的字段名,如下所示:
```java
@Insert("insert into user(name, age) values(#{name}, #{age})")
@Options(useGeneratedKeys = true, keyProperty = "id")
int insert(User user);
```
2. 在 Service 层中调用 Mapper 接口的插入方法,并获取插入后的自增主键的值,如下所示:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public int addUser(User user) {
int result = userMapper.insert(user);
// 获取自增主键的值
Long id = user.getId();
return result;
}
}
```
这样就可以在 Service 层获得 MybatisPlus 插入后的自增主键了。
阅读全文
相关推荐
















