Mybatis插入数据返回自增主键
方法有很多,参考 mysql函数之六:mysql插入数据后返回自增ID的方法,last_insert_id(),selectkey
这里记录一下工作中自己用到的selectkey方法的详细过程。
pojo类:
public class Client {
/**
* 客户id
*/
@Id
private Integer id; /**
* 客户名称
*/
private String name; //其他的一些域自己补充,对应get/set方法也要添加 /**
* 获取客户id
*
* @return id - 客户id
*/
public Integer getId() {
return id;
} /**
* 设置客户id
*
* @param id 客户id
*/
public void setId(Integer id) {
this.id = id;
} /**
* 获取客户名称
*
* @return name - 客户名称
*/
public String getName() {
return name;
} /**
* 设置客户名称
*
* @param name 客户名称
*/
public void setName(String name) {
this.name = name;
}
}
xml映射文件:
keyProperty设置为pojo类的ID域, order为BEFORE则在insert方法之前调用,AFTER则在insert方法之后调用
<insert id="insertSelective" parameterType="com.zhouyufan.client.pojo.Client">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
select LAST_INSERT_ID()
</selectKey>
insert into client
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="name != null and name != ''">name,</if>
<if test="test1 != null">test1,</if>
<if test="test2 != null">test2,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="name != null and name != ''">#{name,jdbcType=VARCHAR},</if>
<if test="test1 != null">#{test1,jdbcType=TINYINT},</if>
<if test="test2 != null">#{test2,jdbcType=TINYINT},</if>
</trim>
</insert>
在Java方法中调用:
// count仍然为insert操作返回的结果
int count = clientMapperCustom.insertSelective(client);
// 自增主键在client的id域里,通过client.getId();获取自增主键
int autoClientid = client.getId();
Mybatis插入数据返回自增主键的更多相关文章
- Mybatis:插入数据返回自增主键
使用Mybatis作为工具连接MySQL,要求在插入数据之后返回自增主键 一开始也很迷惑,Mybatis使用insert之后,成功返回的是1,失败会报错或返回0,主键去哪找来 后来知道Mybatis可 ...
- MyBatis 插入时返回自增主键
XML <insert id="insert" parameterType="com.stone.model.Person"> <!-- se ...
- Mybatis+Mysql插入数据库返回自增主键id值的三种方法
一.场景: 插入数据库的值需要立即得到返回的主键id进行下一步程序操作 二.解决方法: 第一种:使用通用mapper的插入方法 Mapper.insertSelective(record): 此方法: ...
- mybatis+sqlserver中返回非自增主键
首先把实体类贴出来(这里只贴出属性,其它的就是getter和setter方法): public class Around { private String xccd; //对应主键 ...
- SpringBoot集成tk mybatis插入数据,回显主键为null
实体信息如下 @Data public class ApiCertificate{ @Id @GeneratedValue(generator = "JDBC") private ...
- MyBatis插入时候获取自增主键方法
方法一:(Oralce不支持这种写法) useGeneratedkeys 默认值为 false,含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty ...
- postgresql实现插入数据返回当前的主键ID
<insert id="addUser" parameterType="com.liupan.user"> <selectKey keyPro ...
- mybatis插入数据后返回自增主键ID详解
1.场景介绍: 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后 ...
- Mybatis批量插入返回自增主键(转)
我们都知道Mybatis在插入单条数据的时候有两种方式返回自增主键: 1.对于支持生成自增主键的数据库:useGenerateKeys和keyProperty. 2.不支持生成自增主键的数据库:< ...
随机推荐
- C/C++中二维数组和指针关系分析
在C/c++中,数组和指针有着密切的关系,有很多地方说数组就是指针式错误的一种说法.这两者是不同的数据结构.其实,在C/c++中没有所谓的二维数组,书面表达就是数组的数组.我猜想是为了表述方便才叫它二 ...
- ubuntu下如何控制风扇速度?
1.安装lm-sensors (https://apps.ubuntu.com/cat/applications/lm-sensors/)和fancontrol(https://apps.ubunt ...
- 将shell返回的结果保存至数组
如下,我需要将u1和u2提取出保存至数组,方便后续的调用 root@ubuntu:~# lxc list+------+---------+------------------------------ ...
- Linux IO Scheduler
一直都对linux的io调度算法不理解,这段时间一直都在看这方面的内容,下面是总结和整理的网络上面的内容.生产上如何建议自己压一下.以实际为准. 每个块设备或者块设备的分区,都对应有自身的请求队列(r ...
- 寻找最大连续子序列/Find the max contiguous subsequence
寻找最大连续子序列 给定一个实数序列X1,X2,...Xn(不需要是正数),寻找一个(连续的)子序列Xi,Xi+1,...Xj,使得其数值之和在所有的连续子序列数值之和中为最大. 一般称这个子序列为最 ...
- 团队题目需求分析-NABCD
Need: 由本人亲身体验出发,觉得很多同学记不住老师留的作业,或者上课时间记录了,但是老是忘记到底记录了什么,导致没有半大写作业,所以准备设计一个东西来帮助同学. A: 首先,我最先想到的是手机,所 ...
- [SDOI2011] 染色(Luogu 2486)
题目描述 输入输出格式 输入格式: 输出格式: 对于每个询问操作,输出一行答案. 输入输出样例 输入样例#1: 6 5 2 2 1 2 1 1 1 2 1 3 2 4 2 5 2 6 Q 3 5 C ...
- job源码分析
/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agree ...
- jquery checkbox选中状态以及实现全选反选
jquery1.6以下版本获取checkbox的选中状态: $('.ck').attr('checked'); $('.ck').attr('checked',true);//全选 $('.ck'). ...
- python初步学习-python数据类型之strings(字符串)
数据类型-字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号(''或者"")来创建字符串 var1 = 'Hello World!' var2 = "P ...