开发者社区 问答 正文

ClassCastException:不能在连接到MySQL时将java.math.BigInteg

连接到MySQL时,出现错误(见下文)。

点击此处获取代码

我得到以下输出:

run: Now connecting to databse...

java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long 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:1062) at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3556) at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2513) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283) at com.mysql.jdbc.ConnectionImpl. (ConnectionImpl.java:822) at com.mysql.jdbc.JDBC4Connection. (JDBC4Connection.java:47) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:247) at dbms_basic.Dbms_Basic.main(Dbms_Basic.java:28) Caused by: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1007) ... 15 more BUILD SUCCESSFUL (total time: 0 seconds) 我该如何解决?

展开
收起
保持可爱mmm 2020-05-10 22:33:47 1137 分享 版权
1 条回答
写回答
取消 提交回答
  • 您的错误明确指出无法进行强制转换,因为java.math.BigInteger类实例不是java.lang.Long类的实例。

    现在出现了一个问题,即谁在哪个级别上进行强制转换,当我们要求JDBC驱动程序进行连接时,它实际上在幕后进行了大量工作,然后才真正给我们适当的连接工作对象。

    您的MySQL版本与mysql-connector.jar版本组合似乎出现了问题。尝试使用更高版本的MySQL Connector / J(有关最新版本,请参见https://dev.mysql.com/downloads/connector/j/),例如,如果使用的是旧版本,请升级到5.1.47或8.0.12版。来源:stack overflow

    2020-05-10 22:33:59
    赞同 展开评论