mybatis mapper.xml获取insert后的自增ID
时间: 2024-09-19 16:09:57 浏览: 43
mybatis如何通过接口查找对应的mapper.xml及方法执行详解
5星 · 资源好评率100%
在MyBatis中,如果你想要在插入数据之后获取数据库自增生成的主键ID,通常可以使用`selectOne`或者`selectMany`方法,并配合`<association>`标签或者`<resultMap>`中的`idProperty`属性。在mapper XML文件中,你可以设置一个查询来获取新生成的ID,如下所示:
```xml
<mapper namespace="com.example.YourMapper">
<insert id="insertData" parameterType="com.example.YourEntity">
INSERT INTO your_table (column1, column2) VALUES (${column1}, ${column2})
</insert>
<!-- 使用<selectOne>获取自增ID -->
<select id="getIdAfterInsert" resultType="int">
SELECT LAST_INSERT_ID() as last_id FROM DUAL
</select>
</mapper>
```
在上述代码中,`insertData`负责插入数据,而`getIdAfterInsert`则通过SQL `LAST_INSERT_ID()`函数获取刚刚插入操作的自增ID。
然后,在对应的Service层或DAO层,你可以这样调用:
```java
YourMapper mapper = new YourMapperSqlSession(session);
YourEntity entity = ...; // 插入的数据实体
mapper.insertData(entity);
int autoGeneratedId = mapper.getIdAfterInsert(); // 获取自增ID
```
阅读全文