在做项目的过程中有时候难免会运用到新增一条数据并获取到新增的这条数据的主键ID,这样的一个功能,新增一条订单数据,并返回新增订单的ID。这样做的前提是数据的ID必须为自增。
我是用ssm框架做的项目,首先在mapper包里对应接口定义一个返回主键的方法

随后在对应的mapping的实现的xml文件里的新增返回主键的语句添加一个useGeneratedKeys = true和一个keyProperty="返回的主键ID"的属性 ,

useGeneratedKeys:
(仅对insert有用)这会告诉MyBatis使用JDBC的getGeneratedKeys方法来取出由数据(比如:像MySQL和SQL Server这样的数据库管理系统的自动递增字段)内部生成的主键。默认值:false。
keyProperty:
(仅对insert有用)标记一个属性,MyBatis会通过getGeneratedKeys或者通过insert语句的selectKey子元素设置它的值。默认:不设置。

如下图所示:

   注意的是这里的keyProperty里的id是po实体类所对应的ID,并不是数据库表所对应的字段。然后再去Service层对应的接口增加这样一个方法


再去对应的实现类去实现,然后再在对应的实现类注入 ,并实现这个方法,代码如下:

接下来就是在controller层去调用,如下图:

需要注意的是这里返回的int类型的数据仍然是数据修改的条数而不是新增返回的ID,而要获取对应的ID,还是得执行新增以后,从对应的实体类中去获取新增返回的ID

Mybatis新增返回主键ID相关推荐

  1. mybatis新增返回主键值

    mapper <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC ...

  2. Mybatis insert返回主键ID

    Mybatis insert语句书写insert  id= "insertSelective"  useGeneratedKeys= "true"  keyPr ...

  3. mysql批量插入没有返回主键id

    在大批量新增数据的时候往往会采用批量插入来提高效率,但是经常遇到没有返回主键的情况. 一般会有以下几种可能: 1.升级Mybatis版本到3.3.1.官方在这个版本中加入了批量新增返回主键id的功能 ...

  4. mybatis添加记录时返回主键id

    参考:mybatis添加记录时返回主键id 场景 有些时候我们在添加记录成功后希望能直接获取到该记录的主键id值,而不需要再执行一次查询操作. 在使用mybatis作为ORM组件时,可以很方便地达到这 ...

  5. ‍面试官问:Mybatis和Mybatis-Plus执行插入语句后可以返回主键ID吗? ‍我:看我回答...

    一.Mybatis执行插入语句后可以返回主键ID吗? 在想写什么内容的时候,正好看到一个基础面试题上有这个问题,就把它记录下来了.

  6. MyBatis——insert并返回主键ID解决方案

    问题描述 添加记录后获取主键ID,这是一个很常见的需求,特别是在一次前端调用中需要插入多个表的场景. 除了添加单条记录时获取主键值,有时候可能需要获取批量添加记录时各记录的主键值. 问题分析 暂无. ...

  7. Mybatis执行插入语句后并返回主键ID

    我们知道JDBC可以实现插入语句后返回主键Id,那mybatis可以实现吗?答案是肯定的. 1.MySQL数据库设置ID自增情况 <insert id="insertUser" ...

  8. Mybatis批量插入,返回主键ID不成功,巨坑

    一.场景说明 批量插入,返回主键ID报错 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibati ...

  9. python mysql批量insert数据、返回id_Python3 操作 MySQL 插入一条数据并返回主键 id的实例...

    Python 中貌似并没有直接返回插入数据 id 的操作(反正我是没找到),但是我们可以变通一下,找到最新插入的数据 #!/usr/bin/env python3 # -*- coding: UTF- ...

最新文章

  1. php168站内统计,PHP168整站系统0DAY
  2. lucene基本原理
  3. 前端学习(2343):理解virtaldom和key
  4. Oracle中exp的使用2
  5. 利用CRT库函数检查内存泄漏
  6. centos 卸载软件_一篇看懂!详解-Linux系统中安装软件的三种方法
  7. kmeans及模型评估指标_聚类分析的过程和两个常用的聚类算法
  8. POJ 1625 Censored!(AC自动机 + DP + 大数 + 拓展ASCII处理)题解
  9. 数模学习——灰色系统理论
  10. 不容错过的30页超赞项目管理PPT
  11. ubuntu 20.10 安装万能五笔(ibus模式)
  12. 一个大牛的acm历程(看着就要颤抖)
  13. MFC程序的生死因果
  14. 自上而下拆解Synchronized
  15. 后台管理 vue+element 开源框架
  16. 盘点拿些出身最奇特的程序员是什么样的?
  17. java实现商品sku_jquery实现商品sku多属性选择功能(商品详情页)
  18. Speedoffice(word)文档如何修图
  19. Fix Self Tanner Mistakes
  20. AUTOSAR架构的CAN通讯学习(一)——整体概述

热门文章

  1. 【pip】CentOS7.x 升级pip失败报错处理
  2. linux找不到镜像文件,为什么我从硬盘安装Linux,系统总是提示找不到iso文件??...
  3. 浪费粮食之思——爱的太自私
  4. 设定按键将uboot启动时停止autouboot
  5. 【Spring Data JPA自学笔记五】一对多、多对多和级联
  6. 【Spring Data JPA自学笔记三】Spring Data JPA的基础和高级查询方法
  7. linux SIGCHLD信号
  8. [笔记]搜索引擎-实验报告-实验二
  9. C语言避坑之%m.nf的理解
  10. c语言char* 转char[]方法