Mybatis 插入数据后返回自增主键ID

 2023-09-10 阅读 17 评论 0

摘要:1 xml 映射文件中处理 在映射器中配置获取记录主键值 在xml中 insert 标签中定义 : useGeneratedKeys为true,用来设置返回主键id的值,keyProperty 代表数据库记录主键字段keyColumn 代表 java对象成员属性名 <!-- 插入数据:返回记录主键id值 --> <insert id&#

1 xml 映射文件中处理

在映射器中配置获取记录主键值

在xml中 insert 标签中定义 :

  • useGeneratedKeys为true,用来设置返回主键id的值,
  • keyProperty 代表数据库记录主键字段
  • keyColumn 代表 java对象成员属性名
 <!-- 插入数据:返回记录主键id值 -->
<insert id="insert" useGeneratedKeys="true" keyProperty="id"  keyColumn="id">insert  into t_user (name,age) values (#{name},#{age})
</insert>

2 接口注解处理

在接口映射器中通过注解@Options分别设置参数useGeneratedKeys,keyProperty,keyColumn值 如下

// 返回主键字段id值
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
@Insert("insert  into t_user (name,age) values (#{name},#{age})")
void insert(Student stu);

3 Mybatis Plus 中

调用 BaseMapper 的 insert方法后 ,默认将自增主键封装在 插入对象中

4 聊一聊 useGeneratedKeys

oracle新增后返回主键?在MyBatis中,允许设置名称为“useGeneratedKeys”参数存在3个位置如下:

  • 在settings元素中设置useGeneratedKeys参数
  • 在xml映射器中设置useGeneratedKeys参数
  • 在接口映射器中设置useGeneratedKeys参数
4.1 在settings元素中设置useGeneratedKeys参数

对于支持自动生成记录主键的数据库,如:MySQL,SQL Server,此时设置useGeneratedKeys参数值为true,在执行添加记录之后可以获取到数据库自动生成的主键ID。

5 注意事项

使用useGeneratedKeys生成主键时,不能在DAO层使用@Param注解传递参数,否则无法获取主键。

///Dao层对应的代码  不能使用 @Param注解传递参数
/// Long savNewUser(@Param("user") User user);Long savNewUser( User user);
///Mapper对应的映射层<insert id="add" useGeneratedKeys="true" keyProperty="id">insert into t_user(u_name,u_age) VALUES (#{user.userName},#{user.userAget})</insert>

在这里插入图片描述

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/35205.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息