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函数的返回值。

相关推荐
小江的记录本3 小时前
【JVM虚拟机】垃圾回收GC:四种引用类型:强引用、软引用、弱引用、虚引用(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试
handler014 小时前
【MySQL】常用命令总结(库与表增删查改)
运维·数据库·mysql·命令·总结
week@eight4 小时前
Linux - Doris
linux·运维·数据库·mysql
ZhengEnCi5 小时前
01-如何监听接口调用情况?
java·spring boot·后端
JAVA面经实录9176 小时前
MyBatis学习体系
java·mybatis
苏渡苇6 小时前
Spring Cloud Alibaba:将 Sentinel 熔断限流规则持久化到 Nacos 配置中心
数据库·spring boot·mysql·spring cloud·nacos·sentinel·持久化
杨云龙UP6 小时前
Oracle Recycle Bin 回收站详解:DROP TABLE 后还能找回吗?
linux·运维·数据库·sql·mysql·oracle
ForgeAI码匠7 小时前
ForgeAdmin|Spring Boot 3 后台框架的自动配置设计:少写配置,多做组合
java·spring boot·后端
墨_风7 小时前
MyBatis时间区间查询异常排查(达梦数据库)
数据库·mybatis·达梦
Fanta丶8 小时前
7.MySql函数使用 字符串、数值、日期、流程函数
mysql