springboot mybatis mysql新增后返回id(ai生成)

在Spring Boot项目中使用MyBatis和MySQL时,若想在插入数据后返回生成的ID,可以在Mapper接口的插入方法上使用@Options注解,并设置useGeneratedKeys属性为true,同时指定keyProperty为实体类中对应ID的属性名。

以下是一个简单的示例:

1、实体类(假设为User):

java 复制代码
public class User {
    private Long id; // 假设ID是自增长的Long类型
    private String name;
    // 省略其他属性、构造函数、getter和setter方法
}

2、Mapper接口:

java 复制代码
@Mapper
public interface UserMapper {
    @Insert("INSERT INTO users (name) VALUES (#{name})")
    @Options(useGeneratedKeys = true, keyProperty = "id")
    void insertUser(User user);
}

在上述代码中,当insertUser方法被调用时,插入操作执行后,MyBatis会自动将生成的ID回填到传入对象的id属性中。

确保MySQL表的ID列设置了自增属性,例如:

sql 复制代码
CREATE TABLE users (
  id INT NOT NULL AUTO_INCREMENT,
  name VARCHAR(50),
  PRIMARY KEY (id)
);

这样,在插入记录后,MyBatis就会把生成的ID设置到User对象的id属性上。

注意

返回id赋值了user对象的id,不是insertUser函数的返回值。

相关推荐
软萌萌的12 小时前
Java Spring Boot 修改yml配置&加载顺序规则
java·spring boot·python
全栈派森8 小时前
告别大表膨胀!MySQL 冷热分离落地全过程(含 CDC 与单行锁抢占实战)
大数据·mysql
篮框坏了8 小时前
大事务 DELETE 锁表排查:删 3344 万行,一个清理任务变成周期炸弹
mysql
yio_yin9 小时前
MyBatis
java·前端·mybatis
LinuxGeek10249 小时前
Kylin-Server-V11、openEuler-22.03和openEuler-24.03适配原生rpm的MySQL 8.4.11版本正式发布
大数据·mysql·kylin
無a伟10 小时前
Redis事务详解:原理、实战、坑点与实践
mybatis
Lucifer三思而后行11 小时前
TDSQL MySQL 版 DBA 实用 100 条命令
mysql·tdsql
豆角焖肉12 小时前
MyBatis延迟加载、缓存机制与注解开发
java·spring·mybatis
LSL666_12 小时前
SpringBoot静态资源映射
java·spring boot·spring
LSL666_13 小时前
10 Springboot的热部署
java·spring boot·后端