java mysql jdbc

ClassCastException: java.math.BigInteger no se puede convertir a java.lang. Largo al conectarse a MySQL



jdbc (2)

Este problema no está presente en 5.1.45 como se menciona en los comentarios anteriores. Disponible para descargar en,

https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.45/

Cuando me conecto a MySQL, aparece un error (ver más abajo).

Haga clic here para el código

Me sale esta salida:

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.<init>(ConnectionImpl.java:822) at com.mysql.jdbc.JDBC4Connection.<init>(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)

¿Como puedo resolver esto?


Su error dice claramente que la conversión no es posible, porque una instancia de clase java.math.BigInteger no es una instancia de la clase java.lang.Long.

Ahora surge la pregunta de quién está haciendo el casting a qué nivel, cuando le pedimos al controlador JDBC que haga una conexión, está haciendo mucho trabajo detrás de escena antes de que realmente nos devuelva el objeto de conexión de trabajo adecuado.

El problema parece con su versión de MySQL en combinación con su versión de mysql-connector.jar. Pruebe una versión más reciente de MySQL Connector / J (consulte https://dev.mysql.com/downloads/connector/j/ para obtener la última versión), por ejemplo, actualice a 5.1.47 o 8.0.12 si está utilizando una versión anterior versión.