mybatis新增返回主键id
时间: 2023-08-15 20:06:57 浏览: 138
Mybatis返回插入主键id的方法
在MyBatis中,有两种方式可以实现在插入数据后返回主键ID的需求。
第一种方式是在XML文件中设置属性。你需要在对应的Mapper接口的insert方法上添加@Options注解,并设置useGeneratedKeys属性为true,keyProperty属性为你想要返回的主键ID字段的名称。例如:
```java
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("INSERT INTO table_name (column1, column2) VALUES (#{value1}, #{value2})")
int insertData(Data data);
```
这样,在插入数据后,你就可以通过data.getId()来获取到返回的主键ID。
第二种方式是使用注解。你可以在对应的Mapper接口的insert方法上添加@SelectKey注解,并设置statement属性为获取自增ID的SQL语句,keyProperty属性为你想要返回的主键ID字段的名称。例如:
```java
@SelectKey(statement = "SELECT LAST_INSERT_ID()", keyProperty = "id", before = false, resultType = Long.class)
@Insert("INSERT INTO table_name (column1, column2) VALUES (#{value1}, #{value2})")
int insertData(Data data);
```
这样,在插入数据后,你同样可以通过data.getId()来获取到返回的主键ID。
需要注意的是,无论是哪种方式,你都需要确保返回的主键ID对应的字段是自增主键,并且在插入数据时,该字段的值为null。另外,如果你使用的是PostgreSQL数据库,可以使用"select currval('sequence_name')"来获取自增ID的值。
#### 引用[.reference_title]
- *1* *3* [mybatis插入数据后返回自增主键ID的2种方式](https://blog.csdn.net/lchmyhua88/article/details/125132281)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Mybatis框架新增数据返回主键id](https://blog.csdn.net/SGdan_qi/article/details/104222696)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文