关于如何在mysql中插入一条数据后,返回这条数据的id

本文介绍了在Java中如何使用MyBatis在MySQL中插入数据后,通过useGeneratedKeys和keyProperty属性获取新生成的自增ID,以便于后续操作。示例代码展示了一个User对象插入数据库前后的ID变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    简单的总结一下如何在mysql中插入一条数据后,返回该条数据的id ,假如之后代码需要这个id,这样做起来就变得非常方便,内容如下:

<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="User">

    insert into user(userName,password,comment) values(#{userName},#{password},#{comment})

</insert>

在这里:

<u><span style="color:#ff6666">useGeneratedKeys 取值范围true|false 默认值是:false。 含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。</span></u>

之后写一个测试代码如下:

    User user = new User();

    user.setUserName("哈哈");

    user.setPassword("ff");

    System.out.println("插入前主键为:"+user.getUserId());

    userDao.insert(user);//插入操作

    System.out.println("插入后主键为:"+user.getUserId());

插入前主键为:0

插入后主键为:15

如上所示,刚刚插入的记录主键id为15

在Spring Boot项目中,向MySQL插入数据并获取自增ID通常涉及到数据库操作、JDBC、或者更推荐的是使用Spring Data JPA或MyBatis等持久层框架。这里是一个简单的示例,假设你使用了JPA: 1. 首先,你需要一个实体类(Entity),例如`User.java`: ```java import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) // 使用自增策略 private Long id; private String name; // getters and setters } ``` 2. 创建Repository接口,继承`JpaRepository`: ```java import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository<User, Long> { User save(User user); // 保存用户,会自动获取自增ID } ``` 3. 在服务类(Service)中操作数据库: ```java @Service public class UserService { private final UserRepository userRepository; public UserService(UserRepository userRepository) { this.userRepository = userRepository; } public User createUser(String name) { User user = new User(); user.setName(name); return userRepository.save(user); // 调用save方法插入数据并获取新ID } } ``` 4. 最后,在控制器(Controller)里调用服务: ```java @RestController @RequestMapping("/api/users") public class UserController { private final UserService userService; public UserController(UserService userService) { this.userService = userService; } @PostMapping public ResponseEntity<?> createUser(@RequestBody String name) { User newUser = userService.createUser(name); return ResponseEntity.ok(newUser); // 返回包含自增ID的新用户对象 } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值