如何将这个大整数解为';java.lang.Long';问题

如何将这个大整数解为';java.lang.Long';问题,java,mysql,netbeans,Java,Mysql,Netbeans,此代码引发错误: java.sql.SQLException:java.lang.ClassCastException:java.math.BigInteger不能转换为java.lang.Long 我在Workbench上还有一个带有列的表: import java.sql.*; class MysqlCon { public static void main(String args[]) { try { Class.forName("com

此代码引发错误:

java.sql.SQLException:java.lang.ClassCastException:java.math.BigInteger不能转换为java.lang.Long

我在Workbench上还有一个带有列的表:

import java.sql.*;

class MysqlCon {

    public static void main(String args[]) {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/banco", "matheus", "123456");
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("select * from usuario");
            while (rs.next()) {
                System.out.println(rs.getInt(1) + "  " + rs.getString(2) + "  " + rs.getString(3));
            }
            con.close();
        } catch (ClassNotFoundException | SQLException e) {
            System.out.println(e);
        }
    }
}
有什么帮助吗

使用“e.printStackTrace()”:

id (int), name (varchar), age (varchar).
运行:
java.sql.SQLException:java.lang.ClassCastException:java.math.BigInteger不能转换为java.lang.Long
位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
位于com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1062)
位于com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3556)
位于com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2513)
位于com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283)
位于com.mysql.jdbc.ConnectionImpl(ConnectionImpl.java:822)
位于com.mysql.jdbc.JDBC4Connection(JDBC4Connection.java:47)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:423)
位于com.mysql.jdbc.Util.HandleneInstance(Util.java:411)
位于com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404)
位于com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
位于java.sql.DriverManager.getConnection(DriverManager.java:664)
位于java.sql.DriverManager.getConnection(DriverManager.java:247)
在MysqlCon.main(MysqlCon.java:10)
原因:java.lang.ClassCastException:java.math.BigInteger无法转换为java.lang.Long
位于com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1007)
... 还有15个
施工成功(总速度:1秒)

当列类型为整数类型时,JDBC驱动程序通常返回BigInteger

请尝试以下方法:

run:
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 MysqlCon.main(MysqlCon.java:10)
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
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)
并让java处理到字符串的转换

如果您确实希望值为

rs.getObject(1)

请更正您的标签。这不是javascript。当询问异常时,请始终粘贴异常的准确完整堆栈跟踪。替换
System.out.println(e)e.printStackTrace()
编码>并发布输出。另外,不要使用
选择*
。按所需顺序选择实际要选择的列。堆栈跟踪显示对
DriverManager.getConnection()的调用正在引发异常。可能的副本。您可能需要更新驱动程序。如果不是这样,请更新您的问题,以指定:[1]MySQL的版本。[2] 您正在使用的驱动程序的确切名称。您好,这两个建议的问题仍然存在:(哪一行代码引发异常?如果有多个调用,请将它们分隔成不同的行以隔离问题。使用调试器跟踪驱动程序的执行。嗨,波希米亚,我已经将表中的int替换为字符串,尽管听起来很疯狂,但错误仍然存在。Idk如何使用调试器,我的意思是,如何逐行跟踪Netbeans?观察并搜索web上的“Netbeans调试”。堆栈跟踪显示,在声明
结果集之前,调用
DriverManager.getConnection()
会引发异常。
long id = ((BigInteger)rs.getObject(1)).longValue();