在使用MyBatis进行操作数据库时,可以通过以下方法获取插入数据的主键:
1. 在插入数据时,使用`useGeneratedKeys`属性设置为`true`,并且将`keyProperty`属性设置为一个对象的属性名,表示将生成的主键值设置到该对象的该属性上。例如:
```java
@Insert("INSERT INTO my_table (name) VALUES (#{name})")
@Options(useGeneratedKeys = true, keyProperty = "id")
int insertData(MyObject myObject);
```
在上述示例中,当插入数据后,生成的主键值会自动设置到`MyObject`对象的`id`属性上。
2. 使用`selectKey`元素来执行一个查询语句,该查询语句会返回插入数据后生成的主键值。例如:
```xml
SELECT LAST_INSERT_ID()
INSERT INTO my_table (name) VALUES (#{name})
```
在上述示例中,`selectKey`元素会执行一个查询语句`SELECT LAST_INSERT_ID()`,并将查询结果设置到`MyObject`对象的`id`属性上。
3. 在插入数据后,可以通过`SELECT LAST_INSERT_ID()`来获取生成的主键值。例如:
```java
@Insert("INSERT INTO my_table (name) VALUES (#{name})")
int insertData(MyObject myObject);
@Select("SELECT LAST_INSERT_ID()")
Long getLastInsertId();
```
在上述示例中,先插入数据后,再通过`getLastInsertId`方法来获取生成的主键值。
以上是几种常用的获取主键的方法,可以根据具体的需求选择适合的方式。