尝试通过代码连接 MySQL 数据库时收到 SQL 异常错误 ( java.lang.ClassCastException: java.math.BigInteger)

问题描述

请在下面找到我用来创建连接的连接管理器类。

public class DatabaseConnectionManager {    
private final String url;
private final Properties properties;

public DatabaseConnectionManager(
        String host,String databaseName,String username,String password){
    
    this.url= "jdbc:MysqL://"+host+"/"+databaseName;
    
    this.properties = new Properties();
    this.properties.setProperty("user",username);
    this.properties.setProperty("password",password);
    
}

public Connection getConnection () throws sqlException{
    
    return DriverManager.getConnection(this.url,this.properties);
    
}

}

我正在传递查询以从服务器获取信息。

 public static void main(String[] args) {
    
    DatabaseConnectionManager dcm = new DatabaseConnectionManager(
            "localhost:3306","******","***","********");
    **strong text**
    try {
        
        Connection connection = dcm.getConnection();
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery(
                
                "SELECT COUNT (*) FROM STUDENT LIMIT 100"
        );
        while(resultSet.next()){
            System.out.println(resultSet.getInt(1));
        }
        
    } catch (Exception e) {
        e.printstacktrace();
        
    }

错误信息是

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:208)
at jdbcschool.DatabaseConnectionManager.getConnection(DatabaseConnectionManager.java:35)
at jdbcschool.JDBCSchool.main(JDBCSchool.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)
... 16 more
BUILD SUCCESSFUL (total time: 0 seconds)

请注意,我使用的是 MysqL 8.0.22 版,驱动程序也是 8.0.22。任何人都可以帮助我。

我尝试过使用其他版本的服务器。但是,它不起作用。

如果需要任何其他信息,请告诉我。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...