`
dmh920
  • 浏览: 18266 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

mysql jar 包版本更新问题

阅读更多

 最近将以前写的代码重构了一遍,在重构的过程中一时兴起将mysql的jar包由5.0.4更新为5.1.16,启动项目后发现出现了一些异常情况。
首先是在插入数据的时候获得主键时抛出异常:org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL []; SQL state [S1009]; error code [0]; Generated keys not requested. You need to specify Statement.RETURN_GENERATED_KEYS to Statement.executeUpdate() or Connection.prepareStatement().; nested exception is java.sql.SQLException: Generated keys not requested. You need to specify Statement.RETURN_GENERATED_KEYS to Statement.executeUpdate() or Connection.prepareStatement().


解决方法:
将PreparedStatement ps = con.prepareStatement(sql);修改为
PreparedStatement ps = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(new PreparedStatementCreator() {
  @Override
  public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
      PreparedStatement ps = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
      return ps;
  }
}, keyHolder);

 

其次就是在同一张表进行连接查询时老是抛出找不到列的异常:

Nested in org.springframework.jdbc.InvalidResultSetAccessException: 列名无效; nested exception is java.sql.SQLException: 列名无效:java.sql.SQLException: 列名无效

 

该查询的sql语句为:select t1.a, t1.b, t1.c, t1.d,  t1.e,  t2.a x, t2.b y, t2.c z, from table_a t1 left join table_a t2 on t1.c = t2.a where t1.a=?

SqlRowSet srs = jdbcTemplate.queryForRowSet(sql);
if(srs.next()){
    ...
    srs.getInt("x");
    ...
}

 在执行到srs.getInt("x")代码时就抛出上述异常了,事实上是所有的t2列都出现列名无效的错误,该问题还没有解决掉,但将jar包换回之前的版本5.0.4就一切正常了。

  这次汲取了一个经验:不到万不得已的情况下不要轻易的将项目的环境升级,如果实在要升级也要将项目中与升级了的相关功能模块重新测试一编。

分享到:
评论

相关推荐

    Mysql 个版本jar 包

    Mysql 个版本jar 包Mysql 个版本jar 包Mysql 个版本jar 包Mysql 个版本jar 包Mysql 个版本jar 包Mysql 个版本jar 包Mysql 个版本jar 包

    mysql57驱动jar包

    mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57...

    mysql57驱动jar包详情下载.doc

    mysql57驱动jar包详情下载.docmysql57驱动jar包详情下载.docmysql57驱动jar包详情下载.docmysql57驱动jar包详情下载.docmysql57驱动jar包详情下载.docmysql57驱动jar包详情下载.docmysql57驱动jar包详情下载....

    MySQL链接数据库jar包

    里面共有两个jar包,其中mysql-connector-8.0.11适配MySQL8.0,mysql-connector-java-5.1.13-bin适配MySQL5.6

    MySql 5.7 jar包

    Java连接Mysql的工具,适用于Mysql5.7版本,包含如何使用。

    mysql8的驱动jar包

    mysql8的驱动jar包

    mysql8.0版本jdbc驱动jar包

    mysql8.0版本jdbc驱动jar包,支持mysql8.0新版本驱动。。

    Mysql依赖jar包

    包含多个版本的Mysql连接jar包,下载即可用。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    jmeter链接mysql用到的jar包

    jmeter链接mysql用到的jar包

    MySQL8.0.32安装程序和jar包

    MySQL8.0.32安装程序和jar包,适用于各类研发人员进行快速安装和java中快速使用 压缩包中包括两部分: mysql-connector-j-8.0.32.jar mysql-installer-community-8.0.32.0

    mysql57、8驱动jar包

    mysql57、8驱动jar包,亲测可用

    java jsp 连接mysql数据库 jar包

    java jsp 连接 mysql 数据库 jar包java jsp 连接 mysql 数据库 jar包java jsp 连接 mysql 数据库 jar包java jsp 连接 mysql 数据库 jar包java jsp 连接 mysql 数据库 jar包java jsp 连接 mysql 数据库 jar包

    mysql jar包

    提供java连接mysql数据库的jar包,有需要的可以download一下。。

    mysql连接驱动jar包

    mysql连接驱动jar包

    MySQL最新驱动jar包:5.1.49

    MySQL最新驱动jar包:5.1.49,支持MySQL 5.7版本。

    MySQL5.6以及驱动jar包

    window上MySQL安装包,附上驱动jar包和链接代码,适合在win8,win7,win10上使用。

    java连接mysql5.5的jar包

    java连接mysql5.5的jar包 mysql-connector-java-5.1.35-bin.jar

    mysql-connector-java-8.0.27 jar包

    mysql-connector-java-8.0.27 jar包 mysql-connector-java-8.0.27 jar包 mysql-connector-java-8.0.27 jar包 mysql-connector-java-8.0.27 jar包 mysql-connector-java-8.0.27 jar包 mysql-connector-java-8.0.27 ...

Global site tag (gtag.js) - Google Analytics