mybatis添加记录时返回主键id

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> mybatis添加记录时返回主键id

场景

有些时候我们在添加记录成功后希望能直接获取到该记录的主键id值,而不需要再执行一次查询操作。 在使用mybatis作为ORM组件时,可以很方便地达到这个目的。 鉴于mybatis目前已经支持xml配置和注解2种方式,所以分别给予详细介绍。

数据表设计:


drop table if exists `test`;
create table `test` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', // 主键字段为自增长类型
    `name` varchar(50) default '',
    `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` timestamp COMMENT '编辑时间',
    `descr` varchar(100) default '',
    `url` varchar(50) default '',
    PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

使用xml配置方式

1.xml配置:


<!-- 插入数据:返回记录的id值 -->
<insert id="insertOneTest" parameterType="org.chench.test.mybatis.model.Test" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
    insert into test(name,descr,url,create_time,update_time) 
    values(#{name},#{descr},#{url},now(),now())
</insert>

2.java代码:


Test test3 = new Test();
//test3.setId(0L);
test3.setName("test6");
test3.setDescr("测试数据6");
test3.setUrl("http://www.aliyun.com.cn");
int rows = sqlSession.insert("org.chench.test.mybatis.mapper.insertOneTest", test3);
sqlSession.commit();
logger.info("insert rows: {}", rows);
// 执行添加记录之后读取POJO的主键id属性
logger.info("insert test id: {}", test3.getId());

3.详细解释

首先,为了在添加记录时能获取到记录主键id,必须在的xml配置中添加3个属性:


<insert useGeneratedKeys="true" keyProperty="id" keyColumn="id"></insert>

useGeneratedKeys:必须设置为true,否则无法获取到主键id。 keyProperty:设置为POJO对象的主键id属性名称。 keyColumn:设置为数据库记录的主键id字段名称。

其次,新添加主键id并不是在执行添加操作时直接返回的,而是在执行添加操作之后将新添加记录的主键id字段设置为POJO对象的主键id属性。 通过访问POJO对象的主键id属性即可返回。

使用注解方式

详见: 使用mybatis注解实现添加记录时返回主键值

转自:

原文地址:https://sihai.blog.csdn.net/article/details/80017306

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> mybatis添加记录时返回主键id


 上一篇
Tomcat maven 插件启动出现tomcat\conf\tomcat-users.xml cannot be read异常解决方法 Tomcat maven 插件启动出现tomcat\conf\tomcat-users.xml cannot be read异常解决方法
一、问题出现异常: tomcat-users.xml cannot be read 二、解决方法:找到项目的所在目录,删除项目target目录下的tomcat目录。 原文地址:https://sihai.blog.csdn.net/arti
2021-04-04
下一篇 
Qt creator 编译错误 ——cannot find file .pro qt Qt creator 编译错误 ——cannot find file .pro qt
其实问题的解决办法很简单:就是Qt不支持中文的路径,把源码的路径全部改成英文即可解决问题。 首先问题发生在我运行网上的例子程序时,重新构建编译也是出错,提示: Cannot find file: F:\Pro\Qt\QT5开发及实例\本书
2021-04-04