mysql数据库使用mybatis新增操作返回自增主键的值
2023-09-27 14:25:36 时间
在使用mysql数据库做一些新增数据业务时,比如说一张表有个自增主键id,在新增一条数据后想要返回新增的这条数据的id值用于后续业务使用,在使用mybatis做持久化管理,xml中可以使用如下方式:
<insert id="insertClientLog" parameterType="TClientLog"> <selectKey keyProperty="serialNo" order="AFTER" resultType="integer"> select LAST_INSERT_ID() </selectKey> insert into pub_tclientlogfile( operate_date, operate_time, remark, del_status ) values ( #{operateDate}, #{operateTime} #{remark}, #{delStatus} ) </insert>
说明:
使用mysql的LAST_INSERT_ID()方法获取插入记录的主键,设置在插入数据后,即order属性设置为after,使用select LAST_INSERT_ID()查询并返回新插入数据的主键值。
keyProperty:将查询到的主键值设置到对应实体类的主键属性字段。
order:<selectKey> 标签内的sql语句相对于insert语句的执行顺序配置,可以为BEFORE、AFTER,AFTER表示select LAST_INSERT_ID()这个语句将在insert语句之后执行。
或者使用如下方式:
<insert id="insertClientLog" useGeneratedKeys="true" keyProperty="serialNo" parameterType="TClientLog"> insert into pub_tclientlogfile( operate_date, operate_time, remark, del_status ) values ( #{operateDate}, #{operateTime} #{remark}, #{delStatus} ) </insert>
说明:
useGeneratedKeys:设置是否使用jdbc的getGenereatedKeys方法获取主键并赋值到keyProperty设置的属性。
keyProperty:将查询到的主键值设置到对应实体类的主键属性字段。
对应mapper方法:
void insertClientLog(TClientLog clientLog);
使用时使用入参的getXxx方法来获取对应的结果值:
//调用插入方法 clientLogMapper.insertClientLog(clientLog); //使用入参的getXxx方法返回结果值 System.out.println("serialNo:" + clientLog.getSerialNo());
结果如下图所示:
相关文章
- 一文教你把ChatGPT变成MySQL数据库,颠覆你的认知
- 云图说|云数据库MySQL内核小版本升级全攻略
- flask mysql的报错
- 【数据库开发】is not allowed to connect to this MySQL server解决办法
- mysql数据库备份参数
- MySQL数据库管理系统概述
- mysql 慢sql日志的解读排查,慢sql日志开启
- MySQL高可用方案MHA在线切换的步骤及原理
- 一次 MySQL 索引面试,被面试官怼的体无完肤!
- Linux UDEV和为MySQL InnoDB共享表空间配置裸设备
- MySQL的视图,用户管理,C语言连接
- MYSQL数据库-基础概念
- mysql数据库索引失效的常见场景(上)
- 使用JDBC连接MySQL数据库--典型案例分析(七)----批量插入员工信息
- MySQL数据库之数据类型BOOL/BOOLEAN与TINYINT测试总结
- [数据库]mysql/mysqldump命令帮助说明
- mysql 创建表格 AUTO_INCREMENT
- mybatis-generator + mysql/ptsql
- mysql按日期分组(group by)查询统计的时候,没有数据补0的解决办法。
- MyBatis中如何一次执行多条语句(使用mysql数据库)
- python操作MySQL数据库
- 10条SQL优化语句,让你的MySQL数据库跑得更快!
- python3操作数据库 借助pycharm快速连接并操作mysql数据库
- MySQL 全局锁、表级锁、行级锁,你搞清楚了吗
- MySQL索引实战经验总结
- Linux环境Eclipse + Tomcat + MySQL 构造J2EE方法开发环境
- mysql:数据库的基本操作
- mysql查看某个数据库下的所有视图
- MySQL数据库+命令大全+常用操作
- mysql 5.6.33发布
- MySQL智能运维与实践,看关系型数据库如何优雅应对云时代