在 MyBatis 中获取自动生成的主键值通常有以下几种方式:
1. 使用 useGeneratedKeys
和 keyProperty
:
<insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="userId">
INSERT INTO users (name, age) VALUES (#{name}, #{age})
</insert>
useGeneratedKeys="true"
:告诉 MyBatis 使用数据库的自增主键生成策略。keyProperty="userId"
:指定将自动生成的主键值赋给User
对象的userId
属性。
2. 返回主键值作为查询结果:
<insert id="insertUser" parameterType="User">
INSERT INTO users (name, age) VALUES (#{name}, #{age})
<selectKey keyProperty="userId" order="AFTER" resultType="int">
SELECT LAST_INSERT_ID()
</selectKey>
</insert>
<selectKey>
标签用于执行查询以获取主键值,LAST_INSERT_ID()
是获取 MySQL 自增主键的函数,order="AFTER"
表示在插入后执行。
3. 使用 @Options
注解:
@Options(useGeneratedKeys = true, keyProperty = "userId")
@Insert("INSERT INTO users (name, age) VALUES (#{name}, #{age})")
int insertUser(User user);
- 使用
@Options
注解,在注解中设置useGeneratedKeys = true
和keyProperty = "userId"
。
这些方式能够让 MyBatis 在执行插入操作后获取自动生成的主键值,并将其设置到对应的属性中。
Was this helpful?
1 / 0