MyBatis执行insert时怎么获取自增的主键值
时间: 2023-07-24 20:05:18 浏览: 116
mybatis自增主键文档
在 MyBatis 中,执行插入操作时获取自增的主键值可以通过以下几种方式:
1. 在插入 SQL 语句中使用 `useGeneratedKeys` 和 `keyProperty` 属性:在插入语句中添加 `useGeneratedKeys="true"`,然后指定 `keyProperty` 属性来映射主键的值到对应的实体类属性。示例:
```xml
<insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO user (username, password) VALUES (#{username}, #{password})
</insert>
```
这样,在插入完成后,会将自动生成的主键值赋给 `keyProperty` 指定的属性。
2. 使用 `selectKey` 元素:在插入语句之前使用 `selectKey` 元素,通过调用数据库的函数或序列来获取自增的主键值,并将其赋给对应的实体类属性。示例:
```xml
<insert id="insertUser" parameterType="User">
<selectKey keyProperty="id" resultType="Long" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT INTO user (username, password) VALUES (#{username}, #{password})
</insert>
```
这样,在插入完成后,会执行 `SELECT LAST_INSERT_ID()` 来获取自增的主键值,并将其赋给 `keyProperty` 指定的属性。
3. 使用数据库特定的函数或语句:根据数据库的不同,可以使用相应的函数或语句来获取自增的主键值。例如,在 MySQL 中可以使用 `LAST_INSERT_ID()` 函数,而在 Oracle 中可以使用 `RETURNING` 语句。具体的方法可以参考对应数据库的文档或官方示例。
以上是在 MyBatis 中获取自增主键值的常用方法,根据实际情况选择适合的方式。
阅读全文