微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决尝试通过代码连接 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.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?