Eclipse Java 6 与 Mysql 8

Posted

技术标签:

【中文标题】Eclipse Java 6 与 Mysql 8【英文标题】:Eclipse Java 6 with Mysql 8 【发布时间】:2021-09-16 05:42:26 【问题描述】:

使用 java 6 和 mysql 5.1 处理现有项目 我们迁移到了 Mysql 8.0.24,但是我得到了这个错误

Caused by: java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
        at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1041)
        at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3481)
        at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2445)
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2215)
        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:813)
        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)
        at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:172)
        ... 198 more
Caused by: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
        at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:992)
        ... 211 more

当我进行研究时,当 Mysql 连接器的版本比 MySQL 低时会发生此错误。

但是我使用了许多版本的 MySQL 连接器,但我得到了同样的错误 (mysql-connector-java-5.1.46, 5.1.47,5.1.49,8.0.11,8.0.24)

我正在使用 Maven,我使用此命令安装依赖项:

mvn install:install-file -Dfile=C:\mysql-connector-java-x.jar -DgroupId=mysql -DartifactId=mysql-connector-java -Dversion=x -Dpackaging=jar -DgeneratePom=true

然后更新maven依赖:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.49</version>
</dependency>

有什么想法吗?

【问题讨论】:

请显示一些代码 @KenitPatel 我更新了帖子以显示代码 您更新了堆栈跟踪而不是代码:( 我没有任何实现连接的类,连接参数是在jboss服务器上设置的jdbc/dbUgapname> jdbc:mysql://localhost:3306/ecatalogpr_tempcom.mysql.jdbc.Driverroot user-name> org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter 【参考方案1】:

你的错误清楚地表明你有一个转换问题,因为 java.math.BigInteger 类实例不是 java.lang.Long 类的实例。

问题似乎与您的 MySQL 版本和您的 MySQL-connector.jar 版本相结合。尝试更新版本的 MySQL Connector/J(有关最新版本,请参阅 https://dev.mysql.com/downloads/connector/j/),例如,如果您使用的是旧版本,请升级到 5.1.47 或 8.0.12。

【讨论】:

感谢您的回答,正如我所说,我已经使用了不同的 mysql 连接器版本以及 8.0.2,但仍然出现相同的错误

以上是关于Eclipse Java 6 与 Mysql 8的主要内容,如果未能解决你的问题,请参考以下文章

eclipse与mysql链接(Java后台)

Eclipse中java获得mysql的查询结果集

Eclipse+Java+Swing+Mysql实现酒店管理系统

Eclipse+Java+Swing+Mysql实现学生信息管理系统

Eclipse+Java+Swing+Mysql实现员工工资管理系统

Eclipse+Java+Swing+Mysql实现进销存管理系统建议收藏