博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis添加记录时返回主键id
阅读量:6070 次
发布时间:2019-06-20

本文共 1387 字,大约阅读时间需要 4 分钟。

参考:

场景

有些时候我们在添加记录成功后希望能直接获取到该记录的主键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配置:

insert into test(name,descr,url,create_time,update_time) values(#{name},#{descr},#{url},now(),now())

 

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,必须在<insert>的xml配置中添加3个属性:

 

useGeneratedKeys:必须设置为true,否则无法获取到主键id。

keyProperty:设置为POJO对象的主键id属性名称。
keyColumn:设置为数据库记录的主键id字段名称。

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

通过访问POJO对象的主键id属性即可返回。

使用注解方式

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

转载于:https://www.cnblogs.com/thiaoqueen/p/8471637.html

你可能感兴趣的文章
[Linux内核]ctrl-z/fg/bg/nohup/setsid/()与&/disown/screen
查看>>
VS没办法调试,直接退出,报错:1. 使用调试生成配置或禁用调试选项“启用‘仅我的代码’”。。。...
查看>>
C# 委托应用总结
查看>>
Linux驱动技术(七) _内核定时器与延迟工作
查看>>
裁判文书网采集说明
查看>>
Reverse Engineering Custom DataTypes -> GUID() in SQL Server to PostgreSQL
查看>>
配置Tomcat apr运行模式
查看>>
BZOJ3490 : Pa2011 Laser Pool
查看>>
windows 10 超级优化提速 附系统服务列表纯净
查看>>
【jmeter】 jmeter 测试HTTP接口
查看>>
求幂,我居然又没做出来
查看>>
openssh安装/更新教程(CentOS)
查看>>
QTcpSocket 发送和接收数据的几种方法
查看>>
springboot-5-整合jpa
查看>>
40个新鲜的 jQuery 插件,使您的网站用户友好
查看>>
Android Studio设置图片背景及主题设置
查看>>
mysql function动态执行不同sql语句
查看>>
maven docker plugin 常见问题解决
查看>>
linux下查看各硬件型号
查看>>
仿&lt;赶集生活&gt;client启动动画效果
查看>>