mybatis插入数据返回id
时间: 2023-10-24 20:04:47 浏览: 77
在 MyBatis 中,可以通过以下方式获取插入数据后的自动生成的主键 ID:
1. 在 Mapper XML 文件中,使用 `useGeneratedKeys` 和 `keyProperty` 属性。例如:
```xml
<insert id="insertUser" parameterType="com.example.User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO user(username, password) VALUES (#{username}, #{password})
</insert>
```
这里的 `useGeneratedKeys` 属性设为 `true` 表示开启自动生成主键的功能,`keyProperty` 属性指定了返回的主键值绑定到哪个对象的属性上。
2. 在插入数据时使用 `@Options` 注解,例如:
```java
@Insert("INSERT INTO user(username, password) VALUES (#{username}, #{password})")
@Options(useGeneratedKeys = true, keyProperty = "id")
int insertUser(User user);
```
这里的 `@Options` 注解中的 `useGeneratedKeys` 和 `keyProperty` 属性与 Mapper XML 中的用法相同。
3. 在执行插入操作后,通过 `Statement.getGeneratedKeys()` 方法获取自动生成的主键值。例如:
```java
try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = new User("username", "password");
userMapper.insertUser(user);
Long id = user.getId(); // 获取自动生成的主键值
System.out.println(id);
}
```
这里通过 `user.getId()` 方法获取自动生成的主键值,前提是在 `User` 类中定义了 `id` 属性并且提供了对应的 setter 方法。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)