ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long on connect to MySQL

前端 未结 4 1236
野的像风
野的像风 2020-11-22 15:38

When connecting to MySQL, I get an error (see below).

Click here for code

I get this output:

run:
Now connecting to databse...

java.sql.SQLE         


        
相关标签:
4条回答
  • 2020-11-22 16:04

    Your error clearly says casting is not possible, because a java.math.BigInteger class instance is not an instance of java.lang.Long class.

    Now the question arises who is doing casting at what level, when we ask the JDBC driver to make a connection, it is doing lot of work behind the scene before it actually give us back the proper working object of connection.

    The problem seems with your version of MySQL in combination with your version of mysql-connector.jar. Try a newer version of MySQL Connector/J (see https://dev.mysql.com/downloads/connector/j/ for the latest version), for example upgrade to 5.1.47 or 8.0.12 if you are using an older version.

    0 讨论(0)
  • There is a miss-match between your MySQL version, which might be the latest 8.0.19, but the MySQL driver file is older version may be 5.1.23, which is generally available with the NetBeans IDE. To overcome this, download the mysql-connector-java-5.1.48.jar from this link in your PC download connector/j 5.1.48 zip file (4.6MB)

    Now right-click on project name in the netbeans IDE, go to services, in that choose 'Libraries', in it choose 'Add library', then don't opt for available libraries( the drop-down menu will list a JDBCDriver file which has 'mysql-connector-java-5.1.23.jar' file inside it, which is an older version, this is causing the miss-match). Therefore, instead click on 'Create Library', now give it any name of your choice, then click the create button, a browse window will pop-up, go to the directory where you have downloaded the 'mysql-connector-java-5.1.48.zip' folder, open it and select the java jar file 'mysql-connector-java-5.1.48.jar' and click 'ok'. The library folder of your project tree will now show 'JDBCDriver-mysql-connector-java-5.1.48.jar' added in the list of libraries(JDK and Tomcat) . Now try connecting to your database again by clicking on the 'run' button, go to the JSP link, and you see that this time you are connected.

    0 讨论(0)
  • 2020-11-22 16:13

    This issue is not there with 5.1.45 as mentioned in the above comments. Available to download at,

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

    0 讨论(0)
  • 2020-11-22 16:21

    For me updating the connector wasn't enough, I also had to complete my DriverManager.getConnection() url parameter with all the arguments, even if the error message was not mentionning this issue.

    In my case this parameters were needed : "jdbc:mysql://127.0.0.1:3306/database?zeroDateTimeBehavior=convertToNull&serverTimezone=UTC"

    Connector : mysql-connector-java-8.0.17.jar mysql version : 8.0.17

    Using java on netbeans.

    0 讨论(0)
提交回复
热议问题