SELECT LAST_INSERT_ID()自增主键冲突或者为0问题

news/2024/10/24 3:23:47/

问题
数据库为mysql;

mapper.xml文件为mybatis-generator自动生成的;

连接池使用DruidDataSource;

最终生成的insertSelective如下:

在这里插入图片描述

出现问题:

  1. 主键冲突:[WMyBatisTraceInterceptor:54][com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry ‘8963’ for key ‘PRIMARY’

  2. 产生了为0的主键
    在这里插入图片描述

解决
mapper中的order=“BEFORE”,对oracle等是适用的,但对mysql等自增id的,应使用order="AFTER"准确。

SELECT LAST_INSERT_ID();是基于connect的,用BEFORE的情况是,该连接优先生成id,然后insert;用AFTER是在插入后获取到自增后的id。

怎样生成order="AFTER"的mapper.xml,为什么自动生成的是BEFORE呢?

要在generator-config.xml里配置:identity=“true” 默认是false

这样生成的mapper.xml如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/0b0c46e281404aba8d8e9292d1232bc8.png)

区别是:

  1. BEFORE 变为 AFTER

  2. id列在insert语句中删除了


http://www.ppmy.cn/news/74138.html

相关文章

linux内核的proc文件系统

https://xuesong.blog.csdn.net/article/details/109522945 Linux的procfs文件系统是一个虚拟文件系统,是一种特殊文件系统,用于显示进程信息和内核进程。目前,虽然/proc仍然被广泛使用,但是内核2.6及以上的版本,大部分…

MySQL事务和索引

目录 事务的概念 事务的四大特性(ACID) 原子性 隔离性 持久性 一致性 什么是脏读、幻读和不可重复读? 脏读 幻读 不可重复读 事务的隔离级别 读未提交 读已提交 可重复读 串行化 索引 索引优点 索引缺点 索引分类 索引设…

SpringBoot【开发实用篇】---- 整合第三方技术(监控)

SpringBoot【开发实用篇】---- 整合第三方技术(监控) 1. 监控的意义2. 可视化监控平台3. 监控原理 在说监控之前,需要回顾一下软件业的发展史。最早的软件完成一些非常简单的功能,代码不多,错误也少。随着软件功能的逐…

87.el-table翻页后保存前一页所选并再次返回前一页时把数据勾选上

1.首先给<el-table>添加ref、row-key、选择单条事件、全选事件 <el-table ...... ref"newTable" row-key"resource_id" select"selectItem" select-all"selectAll" ..........> 2.初始化选中的数组checkList data(){ retu…

【深度学习】- 作业5: Didi交通场景-车辆预测

课程链接: 清华大学驭风计划 代码仓库&#xff1a;Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的&#xff0c;其分为四门课&#xff0c;包括: 机器学习(张敏教授) &#xff0c; 深度学习(胡晓林教授), 计算…

SpringBoot ( 一 ) 搭建项目环境

1.搭建环境 1.1.创建项目向导 使用idea中的向导创建SpringBoot项目 1.1.1.建立新的项目 位置 : 菜单 > File > New > Project… 1.1.2.选择向导 默认的向导URL 是 https://start.spring.io 建议使用 https://start.aliyun.com 1.1.3.配置项目信息 Group : 组织…

5G配电网专用工业级路由器(电力紧凑型DTU)-智慧电力物联网

随着近年来智能电网的快速发展&#xff0c;它实现了电力系统的监控、数据、电能的统一化智能管理&#xff0c;通过与5G技术结合&#xff0c;助力构建高可靠、高灵活、高效率的配电网络。 5G网络技术具备低时延传输的特点&#xff0c;满足配电网安全、控制的苛刻要求&#xff0…

MD5_buuctf

概念 MD5信息摘要算法&#xff0c;一种被广泛使用的密码散列函数&#xff0c;可以产生出一个128位&#xff08;16字节&#xff09;的散列值&#xff08;hash value&#xff09;&#xff0c;用于确保信息传输完整一致。 MD5算法具有以下特点&#xff1a; 压缩性&#xff1a;任意…