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.不支持生成自增主键的数据库:< ...
随机推荐
- php ul li 分类
<?phpfunction do_tree($arr,$pid){ echo "<ul>"; foreach ($arr as $key => $value ...
- python邮件服务
文件形式的邮件 [python] view plaincopy #!/usr/bin/env python3 #coding: utf-8 import smtplib from email.mime ...
- 解决无法安装cnpm,cnpm卡顿问题
# 注册模块镜像 npm set registry https://registry.npm.taobao.org # node-gyp 编译依赖的 node 源码镜像 npm set disturl ...
- JS获取移动端系统信息(操作系统、操作系统版本、横竖屏状态、设备类型、网络状态、生成浏览器指纹)
function getOS() { // 获取当前操作系统 var os; if (navigator.userAgent.indexOf('Android') > -1 || navigat ...
- postgresql pgagent 的安装及使用
pgagent 作为postgresql的一个任务调度代理,在postgresql 9.0 以前 是附带在pgadmin 包下面的,只是默认不安装,9.0之后作为了一个单独是的安装包.所以要使用pga ...
- HDU2444 :The Accomodation of Students(二分图染色+二分图匹配)
The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- Python爬虫学习笔记之极限滑动验证码的识别
代码: import time from io import BytesIO from PIL import Image from selenium import webdriver from sel ...
- linux包安装,解压,压缩,包管理,环境变量
linux 包安装,解压,压缩,包管理 centoscentos上有系统包管理器yum yum的配置一般有两种方式,一种是直接配置/etc目录下的yum.conf文件,另外一种是在/etc/yum.r ...
- 通过eclipse mybatis generater代码生成插件自动生成代码
Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件.通过在Ecl ...
- Tomcat报错:Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/JFreeChartTest]]
最好把项目移除,然后在tomcat的webapps发布路径下也把项目文件删掉,重新部署就好了,原因是可能在tomcat的remove覆盖中以前的文件有所保留导致冲突,亲测有效