使用mybatis执行insert操作时,需要返回自增主键
网上清一色的答案,
useGeneratedKeys设置为true
keyProperty设置为实体类主键字段,如下:
<insert id="add" parameterType="Entity" useGeneratedKeys="true" keyProperty="EntityId">
insert into entity(...) values(...)
</insert>
我试了好多次都不行,最后看了下面这篇文档:
http://www.cnblogs.com/fsjohnhuang/p/4078659.html
我看到了最重要的一菊花:
注意:mapper接口返回值依然是成功插入的记录数,但不同的是主键值已经赋值到领域模型实体的id中了。
希望遇到相同问题的人可以看到我这篇博客,少走一些弯路。
好了,可以继续愉快的写代码了o(^▽^)o
分享到:
相关推荐
主要介绍了MyBatis在insert插入操作时返回主键ID的配置的相关资料,需要的朋友可以参考下
采用两个版本第一个版本:springboot+mybatis+dubbo+rocketmq+mysql+redis等。第二个版 MySQL 是一款广受欢迎的开源关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现隶属于美国甲骨文公司(Oracle)。自...
主要介绍了Mybatis 中的insertOrUpdate操作,代码简单易懂,非常不错需要的的朋友参考下
在生成表主键ID时,我们可以考虑主键自增 或者 UUID,但它们都有很明显的缺点 主键自增:1、自增ID容易被爬虫遍历数据。2、分表分库会有ID冲突。 UUID: 1、太长,并且有索引碎片,索引多占用空间的问题 2、无序。 ...
以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错,比hibernate灵活。性能也比hibernate好。而且也比较轻量级,因为当时在项目中,没来的及做很很多笔记。后来项目结束了,我也没写总结文档。已经...
这里需要说明一点,如果要操作的表没有主键字段,则生成的xml中只有insert,没有select、update、delete,因为这三种操作都与主键有关,如deleteByPrimaryKey(Long id)、selectByPrimaryKey(Long id)、...
支持 Oracle 使用 SEQUENCE 实现自增主键:需要事先建立好表主键对应的SEQUENCE,并且SEQUENCE的名称作出了要求:格式为table_name_SEQUENCEModel 类支持 Builder 模式创建,示例代码:User user = new User.Builder...
例如,MySQL,使用 useGeneratedKeys="true" <insert id="insertStudent" parameterType="Student" useGeneratedKeys="true"> insert into stu_tbl(name,age) values(#{name},#{age}) </insert>
BaseInsertProvider.java:insert 语句生成器,支持自增主键的 insert 操作 BaseSelectProvider.java:select 语句生成器,支持分页查询、统计查询、自定义条件查询等 BaseUpdateProvider.java:update 语句生成...
一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15 【操作系统问题】 列出超过10个Linux常用的命令以及其作用? 进程和线程是什么?...
AWS 的 RDS 两大开源数据库就是 MySQL(Aurora 和 MariaDB 是它的变种) 和 PostgreSQL。 而 PostgreSQL 跳出了普通关系型数据库的类型约束,它灵活的支持 JSON, JSONB, XML, 数组等类型。比如说字段类型可以是各种...
掌握MyBatis的常用配置,MyBatis的Mapper映射文件的编写,包含select, update, insert和delete,MyBatis映射文件 之parameters和@Param注解,MyBatis映射文件的resultMap的使用,MyBatis映射之association(一对一)...
3、QueryBuilder:单表查询基本上都可以实现零Sql(除非查询条件特别复杂的),更新、删除等操作也可以通过QueryBuilder进行批量处理,不局限于根据主键来处理。 4、分表操作的支持:对于分表操作和常规的使用...
很好的spring,springMVC,mybatis,bootstrap,jQuery,mysql,Restful学习案例 SQL脚本 CREATE DATABASE seckill; USE seckill; -- todo:mysql Ver 5.7.12for Linux(x86_64)中一个表只能有一个TIMESTAMP CREATE ...