pilote - telecharger driver jdbc mysql java




ClassCastException: java.math.BigInteger ne peut pas être converti en java.lang.Long lors de la connexion à MySQL (2)

Lors de la connexion à MySQL, j'obtiens une erreur (voir ci-dessous).

Cliquez here pour le code

Je reçois cette sortie:

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)

Comment puis-je résoudre ça?



Votre erreur indique clairement que la conversion n'est pas possible, car une instance de la classe java.math.BigInteger n'est pas une instance de la classe java.lang.Long.

Maintenant, la question qui se pose est de savoir qui fait le casting à quel niveau. Lorsque nous demandons au pilote JDBC d'établir une connexion, il fait beaucoup de travail dans les coulisses avant de nous redonner le bon objet de connexion.

Le problème semble lié à votre version de MySQL en combinaison avec votre version de mysql-connector.jar. Essayez une version plus récente de MySQL Connector / J (voir https://dev.mysql.com/downloads/connector/j/ pour obtenir la dernière version), par exemple, passez à la version 5.1.47 ou 8.0.12 si vous utilisez une version plus ancienne. version.