MyBatis 中 `<selectKey>` 标签的用法是什么?
时间: 2024-09-14 16:03:36 浏览: 48
`<selectKey>` 标签在 MyBatis 的 XML 映射文件中用于自定义一些主键的生成策略。当我们在插入数据后需要获取自动生成的主键值时,`<selectKey>` 标签就显得尤为重要。它的基本用法如下:
1. `<selectKey>` 标签可以放在 `<insert>` 或 `<update>` 标签内部使用。
2. 它有以下几个属性:
- `keyProperty`:对应实体类的属性名,MyBatis 将查询结果赋值给这个属性。
- `resultType`:指定`keyProperty`所对应的属性的类型。
- `order`:表示`<selectKey>`语句执行的顺序,`BEFORE`表示在插入数据库之前执行,`AFTER`表示在插入数据库之后执行。
- `statementType`:可选属性,有`STATEMENT`、`PREPARED`和`CALLABLE`三种取值,指定`statement`的类型。
举一个简单的例子,如果你使用的是数据库自增主键,那么你可以在插入记录后使用`<selectKey>`来获取这个自增的主键值:
```xml
<insert id="insertUser" parameterType="com.example.User">
<selectKey keyProperty="id" resultType="int" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT INTO users(name, age)
VALUES(#{name}, #{age})
</insert>
```
上面的例子中,`LAST_INSERT_ID()` 是 MySQL 提供的一个函数,用于获取最近一次插入操作生成的 id。其他数据库可能有不同的函数来获取这个值。
阅读全文
相关推荐


















