useGeneratedKeys的详解
在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的详解相关推荐
- mybatis注解详解
mybatis注解详解 首 先当然得下载mybatis-3.0.5.jar和mybatis-spring-1.0.1.jar两个JAR包,并放在WEB-INF的lib目录下 (如果你使用maven,则 ...
- mapper命名规范_Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件
封面:洛小汐 作者:潘潘 若不是生活所迫,谁愿意背负一身才华. 前言 上节我们介绍了 < Mybatis系列全解(四):全网最全!Mybatis配置文件 XML 全貌详解 >,内容很详细( ...
- java批量执行查询sql语句_详解MyBatis直接执行SQL查询及数据批量插入
一.直接执行SQL查询: 1.mappers文件节选 ${paramSQL} 2.DAO类节选 public interface SomeDAO{ List getInstanceModel(@Par ...
- 详解mybatis映射配置文件
一 mybatis 映射文件结构 mybatis映射配置文件存在如下顶级元素,且这些元素按照如下顺序被定义. cache – 给定命名空间的缓存配置. cache-ref – 其他命名空间缓存配置的 ...
- mysql映射mapper_Mybatis中Mapper映射文件使用详解
紧接上文所述,在这篇文章中我将对Mapper映射文件进行详细的说明. Mapper映射文件是一个xml格式文件,必须遵循相应的dtd文件规范,如ibatis-3-mapper.dtd.我们先大体上看看 ...
- mybatis 配置详解
mybatis 配置详解 mybatis-config.xml 核心配置文件 mybatis-config.xml 包含的内容如下 configuration(配置) properties(属性) s ...
- mysql c接口返回自增id_详解mysql插入数据后返回自增ID的七种方法
引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...
- mysql 新增返回主键自增id_详解mysql插入数据后返回自增ID的七种方法
引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...
- mybatis基础总结02 -配置详解
二 mybatis配置详解 MyBatis最关键的组成部分是SqlSessionFactory,我们可以从中获取SqlSession, 并执行映射的SQL语句.SqlSessionFactory对象可 ...
最新文章
- Vijos P1449 字符串还原【密码】
- CTF-python-trade-加密的逆写
- [物理学与PDEs]第2章第2节 粘性流体力学方程组 2.6 一维粘性热传导流体动力学方程组...
- oracle odbc 设置_Oracle删除不干净怎么办?
- 视图中::text_新CalendarFX视图:MonthGridView!
- C或C 如何通过程序执行shell命令并获取命令执行结果?
- Java并发编程笔记—摘抄—基础知识
- (免费领)Java大厂面试题:如何实现对象克隆?
- java调优随记-java对象大小
- NO.83 常用二维码对比(QR、PDF417、DM、汉信码)
- iOS开发之利用苹果系统自带地图进行地图开发
- Python基础--魔法方法()运算符重载)
- python中非0即True,0即False
- python 字符种类判断:
- 《老猿Python精品文章》专栏文章目录
- SAP License:ERP系统是什么意思
- 编程很难?很枯燥?那我们就玩起来燥起来。
- 皮卡丘靶场的搭建以及SQL注入攻击(加强版)
- Android WebRTC 入门教程(二) -- 模拟p2p本地视频传输
- Code of conduct[行为准则]