在settings元素中设置useGeneratedKeys参数

官方的说法是该参数的作用是:“允许JDBC支持自动生成主键,需要驱动兼容”,如何理解这句话的意思?
其本意是说:对于支持自动生成记录主键的数据库,如:MySQL,SQL Server,此时设置useGeneratedKeys参数值为true,在执行添加记录之后可以获取到数据库自动生成的主键ID。
实际上,在settings元素中设置useGeneratedKeys是一个全局参数,但是只会对接口映射器产生影响,对xml映射器不起效。



在项目中经常需要获取到插入数据的主键来保障后续操作,数据库中主键一般我们使用自增或者uuid()的方式自动生成

问题:对于uuid使用Java代码生成的方式还比较容易控制,然而使用数据库生成的主键,这样我们就需要将插入的数据再查询出来得到主键,某些情况下还可能查询到多条情况,这样就比较尴尬了。


那有什么办法来插入数据的时候就得到这个主键呢?

useGeneratedKeys=“true”     keyProperty=“id”
useGeneratedKeys设置为 true 时,表示如果插入的表id以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键id返回。
useGeneratedKeys参数只针对 insert 语句生效,默认为 false;

useGeneratedKeys的详解相关推荐

  1. mybatis注解详解

    mybatis注解详解 首 先当然得下载mybatis-3.0.5.jar和mybatis-spring-1.0.1.jar两个JAR包,并放在WEB-INF的lib目录下 (如果你使用maven,则 ...

  2. mapper命名规范_Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件

    封面:洛小汐 作者:潘潘 若不是生活所迫,谁愿意背负一身才华. 前言 上节我们介绍了 < Mybatis系列全解(四):全网最全!Mybatis配置文件 XML 全貌详解 >,内容很详细( ...

  3. java批量执行查询sql语句_详解MyBatis直接执行SQL查询及数据批量插入

    一.直接执行SQL查询: 1.mappers文件节选 ${paramSQL} 2.DAO类节选 public interface SomeDAO{ List getInstanceModel(@Par ...

  4. 详解mybatis映射配置文件

    一  mybatis 映射文件结构 mybatis映射配置文件存在如下顶级元素,且这些元素按照如下顺序被定义. cache – 给定命名空间的缓存配置. cache-ref – 其他命名空间缓存配置的 ...

  5. mysql映射mapper_Mybatis中Mapper映射文件使用详解

    紧接上文所述,在这篇文章中我将对Mapper映射文件进行详细的说明. Mapper映射文件是一个xml格式文件,必须遵循相应的dtd文件规范,如ibatis-3-mapper.dtd.我们先大体上看看 ...

  6. mybatis 配置详解

    mybatis 配置详解 mybatis-config.xml 核心配置文件 mybatis-config.xml 包含的内容如下 configuration(配置) properties(属性) s ...

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

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

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

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

  9. mybatis基础总结02 -配置详解

    二 mybatis配置详解 MyBatis最关键的组成部分是SqlSessionFactory,我们可以从中获取SqlSession, 并执行映射的SQL语句.SqlSessionFactory对象可 ...

最新文章

  1. Vijos P1449 字符串还原【密码】
  2. CTF-python-trade-加密的逆写
  3. [物理学与PDEs]第2章第2节 粘性流体力学方程组 2.6 一维粘性热传导流体动力学方程组...
  4. oracle odbc 设置_Oracle删除不干净怎么办?
  5. 视图中::text_新CalendarFX视图:MonthGridView!
  6. C或C 如何通过程序执行shell命令并获取命令执行结果?
  7. Java并发编程笔记—摘抄—基础知识
  8. (免费领)Java大厂面试题:如何实现对象克隆?
  9. java调优随记-java对象大小
  10. NO.83 常用二维码对比(QR、PDF417、DM、汉信码)
  11. iOS开发之利用苹果系统自带地图进行地图开发
  12. Python基础--魔法方法()运算符重载)
  13. python中非0即True,0即False
  14. python 字符种类判断:
  15. 《老猿Python精品文章》专栏文章目录
  16. SAP License:ERP系统是什么意思
  17. 编程很难?很枯燥?那我们就玩起来燥起来。
  18. 皮卡丘靶场的搭建以及SQL注入攻击(加强版)
  19. Android WebRTC 入门教程(二) -- 模拟p2p本地视频传输
  20. Code of conduct[行为准则]

热门文章

  1. UI自动化页面定位(一)
  2. 洛谷 P1207 [USACO1.2]双重回文数 Dual Palindromes
  3. html和html5学习
  4. Struts(七):action配置文件之通配符映射
  5. Swift - 30 - 可变参数
  6. bash中通过设置PS1变量改变提示符颜色
  7. 我眼中的Linux设备树(五 根节点)
  8. Linux 小知识翻译 - 「RAID」
  9. backdrop-filter 和filter 写出高斯模糊效果 以及两者区别
  10. Oracle 12c In-Memory Option应用解析