Mybatis 插入数据后返回自增主键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
在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相关推荐
- mybatis插入数据后返回自增主键ID详解
1.场景介绍: 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后 ...
- 七种MYSQL插入数据后返回自增主键ID的方法
我们都知道,mysql中的insert插入之后会有返回值,返回的是影响的行数,也就是说,成功插入一条数据之后返回的是1,失败则返回0.那么,很多时候我们都想要得到最后插入的id值,下面七种方法均可,结 ...
- mybatis 插入数据后返回自增id
useGeneratedKeys="true" keyProperty="id"> sql全部内容: <insert id="insert ...
- mysql 新增返回主键自增id_详解mysql插入数据后返回自增ID的七种方法
引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...
- mysql c接口返回自增id_详解mysql插入数据后返回自增ID的七种方法
引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...
- mysql插入数据后返回自增id
mysql插入数据后返回自增id 使用<insert 中的useGeneratedKeys 和 keyProperty 两个属性 在Mybatis Mapper文件中添加属性 useGenera ...
- 关于Mybatis的insert方法返回值(将返回值受影响条数改为插入后的自增主键id)
今天做ssm项目的时候有一个这样的需求--我借阅一本书然后生成一条借阅记录(借阅记录的主键是递增的"borrowNum"),然后将这条记录的主键返回,在往上查阅资料后知道,只要在对 ...
- mysql添加数据的同时返回自增主键id
方法一(实测可用): <insert id="add" useGeneratedKeys="true" keyProperty="id" ...
- mybatis动态查询(分页排序搜索)+分解关联查询+Logback 日志配置(打印sql到控制台)+mybatis新增记录后返回自增的id。批量=11/2~11/20
一.mybatis动态查询(分页排序搜索) mybatis框架分页实现,有几种方式,最简单的就是利用原生的sql关键字limit来实现,还有一种就是利用interceptor来拼接sql,实现和lim ...
最新文章
- Spring Boot 集成 JUnit5,更优雅单元测试!
- cap3拼接sanger序列:在线+本地分析方法实战
- 我都惊了这么多年pytorch还可以这么用
- 一份字节跳动面试官给你的Java技术面试指南,彻底帮你搞懂
- Table 'xxxxx' is marked as crashed and last 解决办法
- CSS清除默认样式,技术详细介绍
- C++ const成员变量和成员函数
- SAP License:MTO和MTS的区别
- MySql 1067错误
- 使用Python扫描端口
- c 语言 封装dll_C#封装YOLOv4算法进行目标检测
- Windows网络重置后wifi功能丢失解决方案
- 发展农村数字普惠金融的问题及对策分析
- 时序分析——Latch timing
- 网络空间安全中国学科排名——2021软科
- 微信公众号消息通知(原生)
- 国立台湾大学_郭彦甫老师_MATLAB课程练习
- Win11安装 eNSP模拟器
- SIM900A、GPRS、GSM 基础知识
- 电脑如何连接windows server服务器
热门文章
- 微软开源了一个用TF实现的GNN例程库
- 视频编辑利器,不喜欢就框除!开源视频物体移除软件video object removal
- 【赛事】京东百万巨奖寻多传感器融合定位算法英雄
- 集散型计算机控制系统的缺点,什么是集散控制系统?有什么特点?
- 神经网络代码解读_强化学习、联邦学习、图神经网络,飞桨全新工具组件详解...
- 阿里人工智能实验室招聘计算机视觉算法专家-交互图像方向
- PageRank算法原理与实现
- TensorFlow中的Nan值的陷阱
- 精通unix下c语言与项目实践,《精通Unix下C语言编程与项目实践》读书笔记(2)...
- c语言 强制转换 作用域,C语言之总结1详解