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插入数据返回自增主键详细配置相关推荐

  1. oracle批量插入并且返回自增主键_mybatis + (oracle)实现主键自增 + 插入数据并返回主键...

    一.实现主键自增 在oracle数据库中,主键并没有办法自动增长,无法使用insert对应的useGeneratedKeys和keyProperty属性自动返回增加的主键. 要实现自增需要修改 ID列 ...

  2. sql插入语句返回自增主键

    在操作数据库中,插入一条记录,表中的主键是自增的,如果我们需要获得这个主键,就需要在插入的时候,返回这条主键,写法如下: INSERT INTO `gusers_xxxx_log`(`user_id` ...

  3. oracle批量插入并且返回自增主键_oracle 自增主键实现批量更新和增加sql

    增加: 方案1 INSERT INTO WF_TASKTEMP_DEALSTAFF (DEAL_ID, TEMP_ID, STAFF_ID,DEAL_TYPE, STATUS) SELECT WF_T ...

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

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

  5. bootstrap获取选中行的主键_深入分析Mybatis 使用useGeneratedKeys获取自增主键

    摘要 我们经常使用useGenerateKeys来返回自增主键,避免多一次查询.也会经常使用on duplicate key update,来进行insertOrUpdate, 来避免先query 在 ...

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

    1 xml 映射文件中处理 在映射器中配置获取记录主键值 在xml中 insert 标签中定义 : useGeneratedKeys为true,用来设置返回主键id的值, keyProperty 代表 ...

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

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

  8. MyBatis框架——mybatis插入数据返回主键(mysql、oracle)

    向数据库中插入数据时,大多数情况都会使用自增列或者UUID做为主键.主键的值都是插入之前无法知道的,但很多情况下我们在插入数据后需要使用刚刚插入数据的主键,比如向两张关联表A.B中插入数据(A的主键是 ...

  9. MyBatis插入数据返回插入对象的主键

    1.美图 方法:在mapper中指定keyProperty属性,示例如下: 主要: useGeneratedKeys="true" keyProperty="userId ...

最新文章

  1. apache 编译php mysql_记一次痛苦的过程-------源码编译安装apache+php5+mysql
  2. python绘制曲线图-python怎么画曲线图
  3. K8S部署工具:KubeOperator集群部署
  4. 函数的作用域在各浏览器的混乱情况
  5. .net redis定时_一场由fork引发的超时,让我们重新探讨Redis的抖动问题
  6. php 伪静态 获取当前页面路径_织梦移动适配PHP获取当前页面URL地址方法
  7. html button跳转页面_HTML常用标签
  8. matlab连通域分割_MATLAB车牌识别之7个字符切割浅谈【抽丝剥茧】
  9. java常用序列化与反序列化方法
  10. 【转】阿里去IOE运动
  11. html5中的web storage的用法
  12. 函数式编程与面向对象编程[1]: Lambda表达式 函数柯里化 高阶函数
  13. 电力系统同步发电机励磁系统的建模与仿真
  14. Android设备通过fastboot刷入TWRP
  15. c#操作Excel表格插入行和列代码
  16. DateTime.ToString()的用法
  17. java3d载入obj_Threejs大型obj文件的秒加载实现
  18. CPU 发热的几个可能原因
  19. [含lw+源码等]微信小程序考勤签到管理系统+后台管理系统[包运行成功]Java毕业设计计算机毕设
  20. Linux删除当前日志的前1万行

热门文章

  1. Mendix学习(2021年7月28日)
  2. 浅谈Jsch SSH2
  3. AV-TEST给出Android平台最佳防毒软件排名
  4. npm 安装node后,node-v和npm -v提示不是内部或外部命令,也不是可运行的程序 或批处理文件
  5. Python小姿势 - Python爬取网页数据
  6. 堆排序重建堆的时间复杂度_排序算法之 堆排序 及其时间复杂度和空间复杂度-Go语言中文社区...
  7. 论文阅读:Convolutional Neural Networks for Sentence Classification 卷积神经网络的句子分类
  8. edge如何导入html文件收藏夹,win10系统edge浏览器收藏夹导入/导出的操作方法
  9. GCC 编译 C 语言文件
  10. 解决电脑不能进入BIOS页面