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 分钟前
数据库操作
数据库·mysql·算法·oracle
存在的五月雨38 分钟前
MyBatis 中,#{} 和 ${}的区别
mybatis
梦@_@境1 小时前
面向 Spring Boot 的可观测业务流程编排引擎
java·spring boot·后端
设计师小聂!2 小时前
宝塔 Linux 面板保姆级教程
linux·mysql·开源·运维开发
仙俊红3 小时前
SpringBoot启动原理
java·spring boot·后端
Tong Z3 小时前
Mysql DDL中的ALGORITHM
数据库·mysql
記億揺晃着的那天4 小时前
告别误操作!Spring Boot 多环境配置隔离与启动守卫实战
java·spring boot·后端·环境隔离
skywalker_115 小时前
SpringBoot速通(实战教学)
java·spring boot·redis·rpc·ssm·mybatis-plus
码不停蹄的玄黓5 小时前
Spring Boot 实现过滤器(Filter)三种常用方式
java·spring boot·后端
minji...7 小时前
MySQL数据库 (七) MySQL表的基本查询(上),insert、replace、select、where、order by
数据库·mysql·select·replace·insert·order by·where