# mybatis返回添加成功后的id
在 MyBatis 中,当你执行插入操作后想要获取自动生成的主键 ID,有几种常见的方法。
# 方法1)使用 @Options
注解(推荐)
如果你使用的是 MyBatis 注解方式,可以在 Mapper 接口的方法上添加 @Options
注解:
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
int insertSelective(SunWeChatUser weChatUser);
1
2
2
这样配置后,插入成功后,自动生成的 ID 会自动回填到 weChatUser
对象的 id
属性中。
简称Id:回填。
# 方法2)使用 <selectKey>
(XML 方式)
如果你使用的是 XML 映射文件,可以这样配置:
<insert id="insertSelective"
parameterType="com.example.SunWeChatUser"
useGeneratedKeys="true"
keyProperty="id"
>
<!-- 你的 insert 语句 -->
</insert>
1
2
3
4
5
6
7
2
3
4
5
6
7
主要属性字段:
- useGeneratedKeys="true"
- keyProperty="id"
# 注意事项
- 确保你的数据库表主键是自增的(AUTO_INCREMENT)。
- 确保你的实体类中有对应的
id
字段和 getter/setter 方法。 - 如果使用 MySQL,
useGeneratedKeys
通常能正常工作;对于其他数据库可能需要不同的配置。