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.