如何解决尝试通过代码连接 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 举报,一经查实,本站将立刻删除。