mybatis insert返回主键id
时间: 2024-12-22 22:23:16 浏览: 113
在MyBatis中,插入数据并获取主键ID通常涉及到动态SQL或者使用一些特殊的插件。当你执行一个INSERT操作并希望获取新生成的主键时,可以这样做:
1. **通过结果映射**(Result Mapping):在Mapper XML文件中,对于期望自动增长的字段,如`<insert id="insertWithGeneratedKey" parameterType="com.example.YourEntity">...</insert>`,你可以设置一个结果属性`resultType="java.lang.Integer"`,并在插入语句后添加`RETURNING id`这样的后缀,MyBatis会在后台数据库驱动层面处理这个请求。
```xml
<insert id="insertWithGeneratedKey" parameterType="YourEntity" useGeneratedKeys="true" keyProperty="id">
INSERT INTO your_table (column1, column2) VALUES (#{value1}, #{value2}) RETURNING id;
</insert>
```
2. **通过回调通知**(Callback Notification):如果你使用的是MyBatis Plus等框架,它们可能提供了一种执行完插入操作后自动获取主键的方法,例如`insertOrUpdate()`,它会在完成后调用自定义的回调方法传递主键值。
3. **显式查询获取**:执行完插入操作后,你可以再发送一条SELECT语句来获取刚刚插入的新记录的主键,但这通常不是最佳实践,因为它会增加额外的数据库交互。
无论哪种方式,记住要在持久层代码中处理可能的null值,并确保你的数据库配置支持自动增长的主键策略。
阅读全文
相关推荐



















