如何获取mapper插入操作后, 方法返回的主键ID?
时间: 2024-12-08 22:17:47 浏览: 12
在Spring Boot项目中,如果你使用MyBatis作为持久层框架,并且Mapper接口中的插入操作返回的是自增的主键ID,通常你会这样做:
1. **通过`insert`方法并设置`returnGeneratedKeys`参数**:
在Mapper接口的方法签名上添加`@Insert`注解,并指定`useGeneratedKeys="true"`和`keyProperty`属性,如:
```java
@Insert("INSERT INTO table_name (column1, column2) VALUES (#{value1}, #{value2})")
@Options(useGeneratedKeys = true, keyProperty = "id")
int insert(Data data);
```
这里`id`是你想要获取的主键字段名。
2. **使用`Map`接收结果并获取主键**:
MyBatis会将生成的主键作为查询结果的一部分返回。你可以通过`List<Map<String, Object>>`来接收结果,然后通过主键名称从map中获取主键值。例如:
```java
List<Map<String, Object>> result = sqlSession.insertAndGetIds(insertMapper, "insert", data);
Long id = result.get(0).get("id");
```
3. **处理可能出现的异常**:
如果数据库操作失败,可能会抛出异常,记得在使用`getIds`方法后处理潜在的异常。
阅读全文