最新Mybatis插入数据返回自增主键详细配置
Mybatis插入数据返回自增主键
Mybatis插入数据以后只会返回影响的数据库行数,如果是插入一条数据成功则返回1,失败返回零,插入多条返回插入成功的数量。
通过注解或者xml配置无法直接返回自增的主键。Mybatis插入数据返回的自增主键会自动设置为插入对象的属性值,因此我们可以通过获取对象的属性获得自增的主键。
1、通过xml配置获取自增主键
xml配置
<insert id="addUser" parameterType="com.learn.wyg.model.User"><selectKey order="AFTER" keyProperty="id" resultType="Integer">select last_insert_id()</selectKey>insert into sys_user(username,password,status) values(#{username},#{password},#{status});</insert>
或者
(这里keyProperty是java对象的属性,keyColumn是数据库表列名,也就是主键名)
<insert id="addUser" useGeneratedKeys="true" keyProperty="id" keyColumn="id" parameterType="com.learn.wyg.model.User">insert into sys_user(username,password,status) values(#{username},#{password},#{status});</insert>
mapper
public Integer addUser(User user);
Service
在返回属性前需要先执行插入方法,这样mybatis才会把返回的自增主键设置为对象的属性。
public Integer insertUser(User user){Integer res = userMapper.addUser(user);return user.getId();}
2、注解方式
注解配置方法
// 返回主键字段id值
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
@Insert("insert into user (name,age) values (#{name},#{age})")
Integer insert(User user);
其余配置均与xml配置的方式相同。
最新Mybatis插入数据返回自增主键详细配置相关推荐
- oracle批量插入并且返回自增主键_mybatis + (oracle)实现主键自增 + 插入数据并返回主键...
一.实现主键自增 在oracle数据库中,主键并没有办法自动增长,无法使用insert对应的useGeneratedKeys和keyProperty属性自动返回增加的主键. 要实现自增需要修改 ID列 ...
- sql插入语句返回自增主键
在操作数据库中,插入一条记录,表中的主键是自增的,如果我们需要获得这个主键,就需要在插入的时候,返回这条主键,写法如下: INSERT INTO `gusers_xxxx_log`(`user_id` ...
- oracle批量插入并且返回自增主键_oracle 自增主键实现批量更新和增加sql
增加: 方案1 INSERT INTO WF_TASKTEMP_DEALSTAFF (DEAL_ID, TEMP_ID, STAFF_ID,DEAL_TYPE, STATUS) SELECT WF_T ...
- mybatis插入数据后返回自增主键ID详解
1.场景介绍: 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后 ...
- bootstrap获取选中行的主键_深入分析Mybatis 使用useGeneratedKeys获取自增主键
摘要 我们经常使用useGenerateKeys来返回自增主键,避免多一次查询.也会经常使用on duplicate key update,来进行insertOrUpdate, 来避免先query 在 ...
- Mybatis 插入数据后返回自增主键ID
1 xml 映射文件中处理 在映射器中配置获取记录主键值 在xml中 insert 标签中定义 : useGeneratedKeys为true,用来设置返回主键id的值, keyProperty 代表 ...
- 七种MYSQL插入数据后返回自增主键ID的方法
我们都知道,mysql中的insert插入之后会有返回值,返回的是影响的行数,也就是说,成功插入一条数据之后返回的是1,失败则返回0.那么,很多时候我们都想要得到最后插入的id值,下面七种方法均可,结 ...
- MyBatis框架——mybatis插入数据返回主键(mysql、oracle)
向数据库中插入数据时,大多数情况都会使用自增列或者UUID做为主键.主键的值都是插入之前无法知道的,但很多情况下我们在插入数据后需要使用刚刚插入数据的主键,比如向两张关联表A.B中插入数据(A的主键是 ...
- MyBatis插入数据返回插入对象的主键
1.美图 方法:在mapper中指定keyProperty属性,示例如下: 主要: useGeneratedKeys="true" keyProperty="userId ...
最新文章
- apache 编译php mysql_记一次痛苦的过程-------源码编译安装apache+php5+mysql
- python绘制曲线图-python怎么画曲线图
- K8S部署工具:KubeOperator集群部署
- 函数的作用域在各浏览器的混乱情况
- .net redis定时_一场由fork引发的超时,让我们重新探讨Redis的抖动问题
- php 伪静态 获取当前页面路径_织梦移动适配PHP获取当前页面URL地址方法
- html button跳转页面_HTML常用标签
- matlab连通域分割_MATLAB车牌识别之7个字符切割浅谈【抽丝剥茧】
- java常用序列化与反序列化方法
- 【转】阿里去IOE运动
- html5中的web storage的用法
- 函数式编程与面向对象编程[1]: Lambda表达式 函数柯里化 高阶函数
- 电力系统同步发电机励磁系统的建模与仿真
- Android设备通过fastboot刷入TWRP
- c#操作Excel表格插入行和列代码
- DateTime.ToString()的用法
- java3d载入obj_Threejs大型obj文件的秒加载实现
- CPU 发热的几个可能原因
- [含lw+源码等]微信小程序考勤签到管理系统+后台管理系统[包运行成功]Java毕业设计计算机毕设
- Linux删除当前日志的前1万行
热门文章
- Mendix学习(2021年7月28日)
- 浅谈Jsch SSH2
- AV-TEST给出Android平台最佳防毒软件排名
- npm 安装node后,node-v和npm -v提示不是内部或外部命令,也不是可运行的程序 或批处理文件
- Python小姿势 - Python爬取网页数据
- 堆排序重建堆的时间复杂度_排序算法之 堆排序 及其时间复杂度和空间复杂度-Go语言中文社区...
- 论文阅读:Convolutional Neural Networks for Sentence Classification 卷积神经网络的句子分类
- edge如何导入html文件收藏夹,win10系统edge浏览器收藏夹导入/导出的操作方法
- GCC 编译 C 语言文件
- 解决电脑不能进入BIOS页面