首页 > 编程知识 正文

mysql的jdbc的jar包,mysql有几个版本

时间:2023-05-05 06:13:04 阅读:44948 作者:4748

我最近又重构了一次以前写的代码。 重构期间临时将MySQL jar包从5.0.4更新为5.1.16。 启动项目后,发生了一些异常。

首先,在插入数据时获取主键时抛出异常。 org.spring framework.JDBC.uncategorized sqlexception : preparedstatementcallback; uncategorizedsqlexceptionforsql [ ]; SQL state [S1009]; 错误代码[0]; generatedkeysnotrequested.youneedtospecifystatement.return _ generated _ keystostatement.execute update (nestedexcexceptiotion dkeysnotrequested.youneedtospecifystatement.return _ generated _ _ (SQL.sqlexception 3360

解决方法:

preparedstatementps=con.preparestatement (SQL ); 修改为

preparedstatementps=con.preparestatement (SQL,statement.return _ generated _ keys );

keyholderkeyholder=newgeneratedkeyholder (;

JDBC template.update (newpreparedstatementcreator (}

@Override

publicpreparedstatementcreatepreparedstatement (connection con ) throws SQLException {

preparedstatementps=con.preparestatement (SQL,statement.return _ generated _ keys );

返回PS;

}

(,keyHolder );

接下来,在同一表中进行连接查询时抛出找不到列的异常。

nestedinorg.spring framework.JDBC.invalidresultsetaccessexception 3360列名无效; nestedexceptionisjava.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、fromtable_aT1leftjointable_a

sqlrowsetsrs=JDBC template.queryforrowset (SQL;

if(SRS.next ) ) }

.

SRS.getint(x );

.

}

运行SRS.getint('x ) )代码时抛出了上述异常。 实际上,在所有t2列中发生了列名无效的错误。 此问题尚未解决,但将jar恢复到以前的5.0.4版将一切正常。

这次,我吸取了不得已的情况下,不要轻易升级项目环境,无论如何要升级,必须重新测试项目中升级的相关功能模块的经验。

共享到:

2011-06-24 21:18

阅览5951

评论

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。