mybatis新增主键的返回值

在主键自增的数据库中返回新增数据的主键方式:根据mybatis文档

useGeneratedKeys (仅对 insert 和 update 有用)这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 MySQL 和 SQL Server 这样的关系数据库管理系统的自动递增字段),默认值:false。
keyProperty (仅对 insert 和 update 有用)唯一标记一个属性,MyBatis 会通过 getGeneratedKeys 的返回值或者通过 insert 语句的 selectKey 子元素设置它的键值,默认值:未设置(unset)。如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表。

使用useGeneratedKeys和keyProperty就可以了,但是实际使用中,例:

Mission mission = new Mission();System.out.println("返回值"+missionService.createMission(mission));
<insert id="insertSelective" parameterType="com.antscity.any_call.base.model.common.Mission" useGeneratedKeys="true"        keyProperty="id" keyColumn="id">    insert into mission(***)values(***)<insert/>结果输出返回值1此处是一个小坑,mybatis会自动将值赋值给传入的pojo
System.out.println("返回值mission"+mission.getId());结果输出:返回值mission26523

所以再取一遍插入数据的id值就可以了


原文地址:https://www.cnblogs.com/codingcheng/p/10762782.html

时间: 2024-11-10 15:15:03

mybatis新增主键的返回值的相关文章

Mycat探索之旅(4)----Mycat的自增长主键和返回生成主键ID的实现

说明:MyCAT自增长主键和返回生成主键ID的实现 1) mysql本身对非自增长主键,使用last_insert_id()是不会返回结果的,只会返回0:这里做一个简单的测试 创建测试表 -------------------------------------- --创建测试表 ------------------------------------- USE test; CREATE TABLE IF NOT EXISTS t_auto_increment ( id INT NOT NULL

MyBatis中主键回填的两种实现方式

主键回填其实是一个非常常见的需求,特别是在数据添加的过程中,我们经常需要添加完数据之后,需要获取刚刚添加的数据 id,无论是 Jdbc 还是各种各样的数据库框架都对此提供了相关的支持,本文我就来和和大家分享下数据库主键回填在 MyBatis 中的两种实现思路. 原生写法 框架来源于我们学过的基础知识,主键回填实际上是一个在 JDBC 中就被支持的写法,有的小伙伴可能不知道这一点,因此这里我先来说说在 JDBC 中如何实现主键回填. JDBC 中实现主键回填其实非常容易,主要是在构造 Prepar

hibernate主键生成策略值sequence

主键生成策略采用sequence,但没有指定具体的sequence的时候,Hibernate会访问一个默认的sequence,是hibernate_sequence,我们也需要在数据库中建立这个sequence xml文件配置,采用默认seq <id name="pkId" type="java.math.BigDecimal"> <column name="PK_ID" precision="22" sca

ibatis annotations 注解方式返回刚插入的自增长主键ID的值--转

原文地址:http://www.blogs8.cn/posts/WWpt35l mybatis提供了注解方式编写sql,省去了配置并编写xml mapper文件的麻烦,今天遇到了获取自增长主键返回值的问题,发现相关问答比较少,还好最后还是圆满解决了,现把重点记录一下,解决问题的关键就是以下几行代码: 1 @Insert("insert into Product(title, image, price, detail, summary, seller) values(#{title},#{imag

ibatis annotations 注解方式返回刚插入的自增长主键ID的值

mybatis提供了注解方式编写sql,省去了配置并编写xml mapper文件的麻烦,今天遇到了获取自增长主键返回值的问题,发现相关问答比较少,还好最后还是圆满解决了,现把重点记录一下,解决问题的关键就是以下几行代码: 1 @Insert("insert into Product(title, image, price, detail, summary, seller) values(#{title},#{image},#{price},#{detail},#{summary},#{selle

mybatis入门--主键返回(九)

自增主键返回 mysql自增主键,执行insert提交之前自动生成一个自增主键. 通过mysql函数获取到刚插入记录的自增主键: LAST_INSERT_ID() 是insert之后调用此函数. 修改insertUser定义: 非自增主键返回(使用uuid()) 使用mysql的uuid()函数生成主键,需要修改表中id字段类型为string,长度设置成35位. 执行思路: 先通过uuid()查询到主键,将主键输入 到sql语句中. 执行uuid()语句顺序相对于insert语句之前执行. 通过

&lt;MyBatis&gt;入门五 查询的返回值处理

select : 返回对象:  <select  id = " "  resultType= "对象的全类名"  /> List: <select  id = " "  resultType = "list泛型中的值" /> Map: 1.返回一条记录 Map<String,Object>      key -> 字段 value -> 值                    

MyBatis insert/delete/update 的返回值

insert,返回值是:新插入行的主键(primary key):需要包含<selectKey>语句,才会返回主键,否则返回值为null. update/delete,返回值是:更新或删除的行数:无需指明resultClass:但如果有约束异常而删除失败,只能去捕捉异常. 参考资料: 1.Mybatis/Ibatis,数据库操作的返回值 https://blog.csdn.net/gaojinshan/article/details/24308313 原文地址:https://blog.csd

mysql旧表去重数据导入新表且赋予主键id新值

业务需求: A表有id,n1,n2,n3字段,为新建空表, B表有id,n1,n2,n3,n4,n5等字段,为含有数据的旧表, 现将B表中的n1,n2,n3组合的记录去重后导入A表中,并且A表主键也要录入值 方案:将B表的记录查询后去重,同时对查记录结果编排序号,将序号作为待插入A表的id值,sql语句如下: INSERT INTO A表(id,n1,n2,n3) select @row :[email protected]row+1 AS id,t1.* from ( SELECT DISTI