# mybatis返回添加成功后的id

在 MyBatis 中,当你执行插入操作后想要获取自动生成的主键 ID,有几种常见的方法。

# 方法1)使用 @Options 注解(推荐)

如果你使用的是 MyBatis 注解方式,可以在 Mapper 接口的方法上添加 @Options 注解:

@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
int insertSelective(SunWeChatUser weChatUser);
1
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

主要属性字段:

  • useGeneratedKeys="true"
  • keyProperty="id"

# 注意事项

  1. 确保你的数据库表主键是自增的(AUTO_INCREMENT)。
  2. 确保你的实体类中有对应的 id 字段和 getter/setter 方法。
  3. 如果使用 MySQL,useGeneratedKeys 通常能正常工作;对于其他数据库可能需要不同的配置。
Last Updated: 5/20/2025, 4:37:55 AM