`

MYSQL驱动包升级到5.1.17版本之后会出现的问题:Generated keys not requested. You need to specify S

 
阅读更多

今天部署项目的时候顺便把一些依赖用新版本的jar替换了,其他还好就是MYSQL的驱动出了问题。

 

原来用的是5.1.5的包,替换成5.1.17之后,如下生成主键的代码都会报错:

  1. ps = getConnection().prepareStatement(sql.toString());    
  2. ....  
  3. rs = ps.getGeneratedKeys();  

 

Generated keys not requested. You need to specify Statement.RETURN_GENERATED_KEYS to Statement.executeUpdate() or Connection.prepareStatement().

 

 

据说要修改成这样才不会报错:

  1. ps = getConnection().prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);   
  2. ...  
  3. rs = ps.getGeneratedKeys();  

 

 

原因是:貌似从5.1.7版本之后的mysql-connector增加了返回GeneratedKeys的条件,如果需要返回 GeneratedKeys,则PreparedStatement需要显示添加一个参数 Statement.RETURN_GENERATED_KEYS。不过直接报错,不向下兼容也太不厚道了。

 

相关Bug信息:http://bugs.mysql.com/bug.php?id=41448

 

参考:http://www.itsmile.net/blog/article_show/20/273752

 

分享到:
评论

相关推荐

    mysql-connector-java-5.1.17MySQL的JDBC驱动.zip

    `mysql-connector-java-5.1.17`适用于MySQL 5.x版本,对于新版本的MySQL(如8.x),可能需要更新到更兼容的JDBC驱动版本,以利用新特性并修复已知问题。 6. 性能优化: - 使用批处理(Batch Processing)执行多条...

    mysql-connector-java-5.1.17.zip

    "mysql-connector-java-5.1.17.zip" 文件正是这个驱动程序的一个版本,其版本号为5.1.17。 MySQL JDBC驱动程序分为四个类型:Type 1、Type 2、Type 3 和 Type 4。MySQL Connector/J 是Type 4驱动,完全基于Java语言...

    mysql-connector-java-5.1.17-bin.jar

    然而,随着MySQL版本的更新,建议开发者适时升级到更现代的驱动版本,以利用新版本带来的性能提升和功能增强。 总的来说,MySQL Connector/J 5.1.17-bin.jar是Java开发者与MySQL数据库通信的关键组件,了解其工作...

    mysql-connector-java-5.1.17-bin

    MySQL Connector/J 5.1.17 是 MySQL 官方为Java开发者提供的数据库驱动程序,它使得Java应用程序能够与MySQL数据库进行无缝连接。这个压缩包文件包含的是该驱动的二进制版本,主要目的是便于Java开发者在项目中快速...

    mysql-connector-java-5.1.17-bin 还有5.1.19

    如果新项目或升级的项目正在使用较新的MySQL版本,建议使用与之匹配的驱动版本,以充分利用新特性并避免潜在兼容性问题。 总之,`mysql-connector-java-5.1.17-bin.jar`和`mysql-connector-java-5.1.19-bin.jar`是...

    mysql-5.1.17

    MySQL是世界上最受欢迎的开源关系型数据库管理系统之一,其5.1.17版本是一个重要的里程碑,在这个版本中,MySQL提供了一系列的功能改进和性能优化。本文将深入探讨MySQL-5.1.17及其关联的Java连接器——mysql-...

    mysql-connector-java-5.1.17

    MySQL Connector/J 5.1.17 是MySQL数据库与Java应用程序之间的重要桥梁,它是一个实现了JDBC(Java Database Connectivity)接口的驱动程序,允许Java开发者在他们的应用中连接并操作MySQL数据库。这篇详解将深入...

    java连接mysql的依赖库 jar包mysql-connector-java-5.1.17-bin.jar

    Java连接MySQL数据库主要依赖于`mysql-connector-java`驱动程序,这是一个由MySQL官方提供的Java API,用于在Java应用程序中与MySQL数据库进行通信。在给定的`mysql-connector-java-5.1.17-bin.jar`文件中,包含了...

    mysql-connector-java-5.1.7-5.1.3-5.1.17

    "mysql-connector-java-5.1.7-5.1.3-5.1.17"这个压缩包可能包含了从版本5.1.7到5.1.17的多个MySQL Connector/J版本,这些版本可能用于兼容不同环境或解决特定时期的问题。 MySQL Connector/J的知识点包括: 1. **...

    mysql-connector-java-5.1.7 jar包

    MySQL是世界上最流行的开源关系型数据库管理系统之一,而`mysql-connector-java-5.1.7.jar`是MySQL官方为了使得Java应用程序能够连接到MySQL数据库而提供的JDBC(Java Database Connectivity)驱动程序。JDBC是Java...

    官方原版源码 spring-framework-5.1.17.RELEASE.zip

    总的来说,Spring Framework 5.1.17.RELEASE的源码是一本生动的教科书,通过阅读和分析源码,开发者不仅可以了解Spring的工作原理,还能学习到设计模式和最佳实践,这对于提升个人技术水平和解决实际问题有着不可...

    mysql-workbench-oss-5.1.17-win32-noinstall.zip

    "mysql-workbench-oss-5.1.17-win32-noinstall.zip" 是这个工具的一个特定版本,适用于Windows 32位操作系统,并且是开源服务版本(OSS)。这个压缩包文件包含了免安装版本的MySQL Workbench,意味着用户可以直接...

    mysql-src-5.1.17.jar

    mysql-src-5.1.17 源代码,对于理解mysql的一些类是很有必要的。

    最新5.5.17mysql.驱动jdbc

    `mysql-connector-java-5.1.17`是MySQL JDBC驱动程序的特定版本文件名,其中`mysql-connector-java`是驱动的通用名称,`5.1.17`表示具体版本。这个.JAR文件包含了所有必要的Java类和资源,使得Java应用程序能够与...

    MYSQL安装步骤-5.7.17

    在安装新版本MySQL之前,需要确保旧版本的Mariadb或其他MySQL版本已完全卸载,避免出现端口冲突等问题。 ```bash # 查找并列出已安装的RPM包 rpm -qa | grep mariadb # 卸载列出的包 rpm -e mariadb-server-5.5.44-...

    mysql-connector-java-5.0.X.rar

    这个压缩包“mysql-connector-java-5.0.X.rar”包含的是不同版本的MySQL JDBC(Java Database Connectivity)驱动,允许Java开发者在他们的应用中无缝地连接到MySQL数据库。 JDBC驱动是Java平台上的一个标准接口,...

    mysql的jar驱动包

    myeclipse、eclipse连接mysql的jar驱动包

    mysql连接jar包,5.1.7 5.1.34 5.1.16

    mysql连接jar包 mysql-connector-java-5.1.34-bin mysql-connector-java-5.1.16-bin mysql-connector-java-5.1.7-bin

Global site tag (gtag.js) - Google Analytics