zoukankan      html  css  js  c++  java
  • 更新mysql驱动5.1-47 Generated keys not requested. You need to specify Statement.RETURN_GENERATED_KEY

    今天在更新mysql驱动后运行程序突然报如下错误:

    java.sql.SQLException: Generated keys not requested. You need to specify Statement.RETURN_GENERATED_KEYS to Statement.executeUpdate(), Statement.executeLargeUpdate() or Connection.prepareStatement().
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:898)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:887)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:861)
    	at com.mysql.jdbc.StatementImpl.getGeneratedKeys(StatementImpl.java:1693)
    	at liubin.demo.Test.main(Test.java:23)
    
    

    经过检查发现从5.1.7版本之后的mysql-connector增加了返回GeneratedKeys的条件,如果需要返回GeneratedKeys,则PreparedStatement需要显示添加一个参数Statement.RETURN_GENERATED_KEYS。说实话,更新程序不向下兼容是不是有点不厚道啊!!!

    解决方法:
    st = conn.prepareStatement(sql);
    修改为:st = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
    在这里插入图片描述

  • 相关阅读:
    Future接口和Callable接口以及FeatureTask详解
    puppet的使用:ERB模板介绍
    puppet的使用:依赖关系整理
    数字证书常见格式整理
    c3p0配置文件
    dockerfile简述
    Grape简介
    keytool和openssl生成的证书转换
    Grape教程-params
    耿丹CS16-2班助教总结
  • 原文地址:https://www.cnblogs.com/liuurick/p/10713659.html
Copyright © 2011-2022 走看看