MyBatis插入时获取自增长主键
在某些场景下,我们需要使用mybatis返回生成的主键值。Mybatis在insert和update标签中就提供了这种功能。
方法1:
<insert id=”indetifyId” useGeneratedKeys=”true” keyProperty=”id” keyColumn="id"> </insert>
- useGeneratedKeys: 是否自动生成主键,默认false
- keyProperty :返回的主键值赋给哪个属性
- keyColumn: 数据库中的自增主键的列名,默认是数据库表的第一列。当主键列不是表中的第一列的时候需要设置,PostgreSQL必须设置。
- 主键自动生成,取决于数据库是否支持自增主键。实际上当设置了useGeneratedKeys=“true”,Mybatis会调用JDBC的getGeneratedKeys方法,并将获取的主键值赋值给keyProperty 指定的属性。
方法2:
<insert id="insertCustomer" parameterType="cn.rayfoo.bean.Customer">
<!--
获取插入的最后一个id
keyColumn 哪个字段时自增长id
keyProperty 将值保存到parameterType对应bean对象的那个属性中
resultType 该属性的类型
order 执行sql后赋值还是执行之前赋值
-->
<selectKey keyColumn="cust_id" keyProperty="cust_id" resultType="Integer" order="AFTER">
select last_insert_id()
</selectKey>
insert into customer(cust_name,cust_profession,cust_phone,email)
values(#{cust_name},#{cust_profession},#{cust_phone},#{email});
</insert>
MyBatis插入时获取自增长主键的更多相关文章
- MyBatis插入时候获取自增主键方法
方法一:(Oralce不支持这种写法) useGeneratedkeys 默认值为 false,含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty ...
- MyBatis 插入时返回自增主键
XML <insert id="insert" parameterType="com.stone.model.Person"> <!-- se ...
- MyBatis 3.2.6插入时候获取自增主键方法
MyBatis 3.2.6插入时候获取自增主键方法有二 以MySQL5.5为例: 方法1: <insert id="insert" parameterType="P ...
- Mybatis 插入一条或批量插入 返回带有自增长主键记录
首先讲一下, 插入一条记录返回主键的 Mybatis 版本要求低点,而批量插入返回带主键的 需要升级到3.3.1版本,3.3.0之前的都不行, <dependency> <grou ...
- 深入分析Mybatis 使用useGeneratedKeys获取自增主键
摘要 我们经常使用useGenerateKeys来返回自增主键,避免多一次查询.也会经常使用on duplicate key update,来进行insertOrUpdate,来避免先query 在i ...
- Mybatis插入数据返回自增主键
方法有很多,参考 mysql函数之六:mysql插入数据后返回自增ID的方法,last_insert_id(),selectkey 这里记录一下工作中自己用到的selectkey方法的详细过程. po ...
- mybatis查询语句获取自增主键
第一种方式: 主键回填useGeneratedKeys 代表采用JDBC的Statment对象的getGeneratedKeys方法返回主键keyProperty 代表将用哪个POJO的属性去匹配这个 ...
- SpringBoot集成tk mybatis插入数据,回显主键为null
实体信息如下 @Data public class ApiCertificate{ @Id @GeneratedValue(generator = "JDBC") private ...
- C#连接mysql数据库插入数据后获取自增长主键ID值
From: http://blog.csdn.net/zbc496218/article/details/51082983 MySqlConnection conn = new MySqlConnec ...
随机推荐
- List(数组)里面常用的属性和方法
常用属性: length 长度 reversed 翻转 isEmpty 是否为空 isNotEmpty 是否不为空常用方法: add 增加 addAll 拼接数组 增加多个数据 list.addAll ...
- Java面向对象编程 -6.2
数组的引用传递 通过数组的基本定义可以发现,在数组使用的过程中依然需要使用new进行内存空间的开辟,同理,那么也一定存在有内存的关系匹配问题. 但是数组本身毕竟属于引用数据类型,那么既然是引用数据类型 ...
- 【MySQL】安装及配置
" 目录 #. 概述 1. 什么是数据(Data) 2. 什么是数据库(DataBase, 简称DB) 3. 什么是数据库管理系统(DataBase Management System) 4 ...
- 洛谷 P3865 【模板】ST表(模板)
嗯... 题目链接:https://www.luogu.com.cn/problem/P3865 ST(Sparse Table)算法,运用了倍增的思想. 我们令f[i][k]数组表示区间[i, i ...
- VS2017创建控制台应用后,编写完代码调试正常,使用exe文件直接执行出现闪退情况解决方法。
这是因为代码中包含的相对路径的原因. 解决办法:把项目中包含的所有相对路径修改为绝对路径. (个人觉得因为直接执行exe文件,默认打开在C盘的用户目录下.) 例如: std::string DATA_ ...
- python requests.request 和session.request区别究竟在哪里
import requests hd={"X-auth":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJzeXN0ZW0iLCJBUEkiOiIvdW ...
- 大数据计算引擎之Flink Flink CEP复杂事件编程
原文地址: 大数据计算引擎之Flink Flink CEP复杂事件编程 复杂事件编程(CEP)是一种基于流处理的技术,将系统数据看作不同类型的事件,通过分析事件之间的关系,建立不同的时事件系序列库,并 ...
- 洛谷P1006传纸条
题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个 m 行 n 列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了. ...
- spring boot+jwt 权限验证
上周看了一下jwt以前公司的开发都是使用session共享的方法.现在主流的两种方式一种是把登录信息保存在服务器,另一种则是把信息保存在客户端.在使用session 存储的时候会遇到很多的问题,随着项 ...
- windows网络编程-C语言实现简单的TCP协议聊天
TCP/IP协议(面向连接协议)类似于打电话时,对方一定在手机附近并且此刻都在和对方进行通话.一定保证双方都在线,才能进行数据传输.UDP/IP协议(无连接协议)就像邮箱,不保证对方一定在等你邮件且对 ...