`
tedeyang
  • 浏览: 327998 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

bug记录:mysql生成id后获取出错

阅读更多
今天同事给我看一段代码,是我前年写的。
他发现了一个bug。
代码的作用是用jdbc向mysql中插入一条主键自增的数据,然后使用mysql的select last_insert_id()语法获取生成的主键值。
问题出在两次sql执行用的不是同一个数据库连接,而从数据源里获取了两次
我们都知道,mysql的last_insert_id()函数是针对connection的,所以这是个严重bug。
之前两年负载小,所以数据源大概每次都返回同一个connection,于是bug被遮盖住了。最近服务器压力增加,两次连接就可能不是同一个了。
因此last_insert_id()得到的主键值出错!

那时候我怎么会获取两次连接来执行一个方法里的两句sql,包括我在内所有人都莫名其妙。错误比较明显,这项目已经交接给他们了,不过出于对我的信任,还是屁颠屁颠来问我:获取两个连接是不是还有其他特殊考虑?我苦思冥想了一会,答曰:忘了。

没想到我曾经养过的臭虫还到处潜伏着,等着我出丑呢。
分享到:
评论

相关推荐

    mysql-connector-java-8.0.21.rar 数据库连接依赖最新版

    MySQL Connector/J是MySQL数据库系统与Java应用程序之间的重要桥梁,它是一个实现了JDBC(Java Database Connectivity)规范的驱动程序,使得Java开发者能够方便地在Java应用中访问MySQL数据库。本压缩包"mysql-...

    BUG记录模版(带汇总、统计、分析功能)

    在软件开发过程中,BUG记录模版是至关重要的工具,它帮助团队系统地追踪、记录、汇总和分析软件中的错误或缺陷。"BUG记录模版(带汇总、统计、分析功能)"是一个专门设计用于提高缺陷管理效率的文档模版,旨在为开发...

    最新版:mysql connector-java-8.0.29.jar

    7. **新版本的改进**:每个新版本的MySQL Connector/J都会带来性能优化、新的功能、bug修复以及对最新MySQL服务器版本的支持。8.0.29版本可能包括了对MySQL 8.0系列特性的增强,比如JSON支持、窗口函数和存储过程等...

    mysql源码(mysql-8.2.0.tar.gz)

    通过对mysql-8.2.0源码的学习和分析,开发者不仅可以了解MySQL的工作原理,还能为优化性能、解决bug或开发新的功能提供基础。此外,对于希望贡献于MySQL社区的开发者来说,源码也是理解并参与开源项目的重要途径。

    项目BUG记录模板.xls

    项目BUG记录模板,用来记录项目开发中的问题及BUG

    bug记录模板

    在IT行业中,bug管理是软件开发过程中的关键环节,它涉及到问题的发现、记录、跟踪、修复以及验证。"bug记录模板"是一个专门用于规范这一流程的工具,它旨在提高效率,确保中小型公司的bug统计工作得以高效且准确地...

    bugfreee一个bug管理系统jsp+mysql

    《Bugfree:基于JSP与MySQL的bug管理系统详解》 在软件开发过程中,bug管理是一项至关重要的任务。有效的bug管理能够提高开发效率,确保产品质量,而Bugfree正是这样一款为解决此类问题而设计的系统。本文将深入...

    数据字典生成器【MYSQL】

    这暗示用户在尝试过其他工具后,认为这款数据字典生成器是最满意的选择。 标签中提到的"php",意味着这个工具可能是用PHP语言编写的,PHP是一种广泛用于Web开发的服务器端脚本语言,能够轻松地与MySQL数据库集成。...

    FreeSwitch media bug获取通话语音流的完整例子

    在FreeSwitch这个强大的开源通信平台中,Media Bug是一个非常重要的工具,它允许开发者获取和处理通话过程中的媒体流,例如语音、视频等。本案例将详细介绍如何利用Media Bug功能来获取通话语音流的完整流程。 首先...

    mysql-connector-java-8.0.23.zip

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而MySQL Connector/J则是MySQL官方提供的用于Java应用程序与MySQL数据库进行连接的驱动程序。这个"mysql-connector-java-8.0.23.zip"文件正是MySQL Connector/J的...

    php7.1+mysql5.0+bugfree.rar

    创建项目,分配任务,记录和跟踪bug,生成报表。定期更新BugFree到最新版本,以获取新的功能和安全补丁。同时,注意定期备份数据库,以防数据丢失。 总结,通过本文的介绍,你应该已经了解了如何在PHP7.1和MySQL5.0...

    解决动软代码生成器2.78生成MySQL表代码没有列注释的dll

    标题中的“动软代码生成器2.78生成MySQL表代码没有列注释的dll”问题,是指在使用动软代码生成器版本2.78时,用户发现自动生成的MySQL数据库表对应的C#类代码中,列注释(字段描述)没有被正确地包含进去。...

    Bug记录跟踪表

    该文档主要用户开发过程的Bug记录跟踪,可以很好管理开发过程的bug。

    mysql-connector-java-5.1.25, mysql 5.7.31亲测有效

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而MySQL Connector/J则是MySQL与Java应用程序之间的桥梁,它是一个JDBC(Java Database Connectivity)驱动程序,使得Java开发者能够方便地在Java应用中访问和...

    mysql-connector-java-6.0.5.zip

    解压后,用户通常会在文件夹中找到一个jar文件,如“mysql-connector-java-6.0.5.jar”。这个jar文件包含了所有必要的类和资源,可以被Java应用通过类路径引用。 使用MySQL Connector/J时,开发者需要在Java应用中...

    日常bug跟踪记录工具

    标题中的“日常bug跟踪记录工具”指的是一个专门用于在软件开发过程中记录和追踪问题的应用程序。这类工具对于软件团队来说非常重要,因为它可以帮助他们系统地管理缺陷,确保每个问题都能得到及时有效的解决。在这...

    bug记录文档模板

    用于bug记录以及bug分析的模板,适合多种统计方式分析,以及问题记录详细信息

    CMS 内容管理系统源码

    Bug修改:模板生成空格和问题。 13. Bug修改:插入分页符后,翻页不起作用。 14. Bug修改:设置信息审核后,图片文章保存不能发布缩略图。 15. Bug修改:新建角色时,所属用户标签中,不能正确搜索出用户。

    mysql-connector-c-6.0.2

    执行后,可以使用`mysql_store_result()`或`mysql_use_result()`处理返回的结果集。 3. **结果集处理**:`mysql_fetch_row()`和`mysql_fetch_assoc()`函数分别用于获取结果集中下一行的数据作为字符数组和关联数组...

Global site tag (gtag.js) - Google Analytics