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

在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>

Mybatis 插入数据后返回自增主键ID相关推荐

  1. mybatis插入数据后返回自增主键ID详解

    1.场景介绍: ​ 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后 ...

  2. 七种MYSQL插入数据后返回自增主键ID的方法

    我们都知道,mysql中的insert插入之后会有返回值,返回的是影响的行数,也就是说,成功插入一条数据之后返回的是1,失败则返回0.那么,很多时候我们都想要得到最后插入的id值,下面七种方法均可,结 ...

  3. mybatis 插入数据后返回自增id

    useGeneratedKeys="true" keyProperty="id"> sql全部内容: <insert id="insert ...

  4. mysql 新增返回主键自增id_详解mysql插入数据后返回自增ID的七种方法

    引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...

  5. mysql c接口返回自增id_详解mysql插入数据后返回自增ID的七种方法

    引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...

  6. mysql插入数据后返回自增id

    mysql插入数据后返回自增id 使用<insert 中的useGeneratedKeys 和 keyProperty 两个属性 在Mybatis Mapper文件中添加属性 useGenera ...

  7. 关于Mybatis的insert方法返回值(将返回值受影响条数改为插入后的自增主键id)

    今天做ssm项目的时候有一个这样的需求--我借阅一本书然后生成一条借阅记录(借阅记录的主键是递增的"borrowNum"),然后将这条记录的主键返回,在往上查阅资料后知道,只要在对 ...

  8. mysql添加数据的同时返回自增主键id

    方法一(实测可用): <insert id="add" useGeneratedKeys="true" keyProperty="id" ...

  9. mybatis动态查询(分页排序搜索)+分解关联查询+Logback 日志配置(打印sql到控制台)+mybatis新增记录后返回自增的id。批量=11/2~11/20

    一.mybatis动态查询(分页排序搜索) mybatis框架分页实现,有几种方式,最简单的就是利用原生的sql关键字limit来实现,还有一种就是利用interceptor来拼接sql,实现和lim ...

最新文章

  1. Spring Boot 集成 JUnit5,更优雅单元测试!
  2. cap3拼接sanger序列:在线+本地分析方法实战
  3. 我都惊了这么多年pytorch还可以这么用
  4. 一份字节跳动面试官给你的Java技术面试指南,彻底帮你搞懂
  5. Table 'xxxxx' is marked as crashed and last 解决办法
  6. CSS清除默认样式,技术详细介绍
  7. C++ const成员变量和成员函数
  8. SAP License:MTO和MTS的区别
  9. MySql 1067错误
  10. 使用Python扫描端口
  11. c 语言 封装dll_C#封装YOLOv4算法进行目标检测
  12. Windows网络重置后wifi功能丢失解决方案
  13. 发展农村数字普惠金融的问题及对策分析
  14. 时序分析——Latch timing
  15. 网络空间安全中国学科排名——2021软科
  16. 微信公众号消息通知(原生)
  17. 国立台湾大学_郭彦甫老师_MATLAB课程练习
  18. Win11安装 eNSP模拟器
  19. SIM900A、GPRS、GSM 基础知识
  20. 电脑如何连接windows server服务器

热门文章

  1. 微软开源了一个用TF实现的GNN例程库
  2. 视频编辑利器,不喜欢就框除!开源视频物体移除软件video object removal
  3. 【赛事】京东百万巨奖寻多传感器融合定位算法英雄
  4. 集散型计算机控制系统的缺点,什么是集散控制系统?有什么特点?
  5. 神经网络代码解读_强化学习、联邦学习、图神经网络,飞桨全新工具组件详解...
  6. 阿里人工智能实验室招聘计算机视觉算法专家-交互图像方向
  7. PageRank算法原理与实现
  8. TensorFlow中的Nan值的陷阱
  9. 精通unix下c语言与项目实践,《精通Unix下C语言编程与项目实践》读书笔记(2)...
  10. c语言 强制转换 作用域,C语言之总结1详解