简单程序抛出ClassCastException:java.math.BigInteger不能转换为java.lang.Long

简单程序抛出ClassCastException:java.math.BigInteger不能转换为java.lang.Long,java,mysql,jdbc,Java,Mysql,Jdbc,我正在做一个简单的程序来连接MySQL数据库和Java,但是这个程序抛出了ClassCastException错误 这个问题说MySQL中的Unsigned Bigint相当于Java中的long 以下是java部分: public static void main(String[] args) throws ClassNotFoundException, SQLException { // TODO code application logic here Class.forN

我正在做一个简单的程序来连接MySQL数据库和Java,但是这个程序抛出了ClassCastException错误

这个问题说MySQL中的Unsigned Bigint相当于Java中的long

以下是java部分:

public static void main(String[] args) throws ClassNotFoundException, SQLException {
    // TODO code application logic here

    Class.forName("com.mysql.jdbc.Driver");
    Connection con = DriverManager.getConnection("jdbc:mysql:///check1","uname","pwd");
    Statement st = con.createStatement();
    ResultSet rs = st.executeQuery("select * from t1");
    while(rs.next()){
        System.out.println(rs.getObject(1)+ " "+ rs.getObject(2));
    }
    rs.close();
    st.close();
    con.close();
}
我还包括我创建的表的模式

mysql> desc t1;                                                                                                                                                         
+--------+-------------+------+-----+---------+----------------+                                                                                                        
| Field  | Type        | Null | Key | Default | Extra          |                                                                                                        
+--------+-------------+------+-----+---------+----------------+                                                                                                        
| rollno | bigint(20)  | NO   | PRI | NULL    | auto_increment |                                                                                                        
| name   | varchar(40) | NO   |     | NULL    |                |                                                                                                        
+--------+-------------+------+-----+---------+----------------+                                                                                                        
2 rows in set (0.39 sec)   
试着这样做

Class.forName("com.mysql.jdbc.Driver").newInstance();

你检查过这个了吗?抛出异常的代码在哪里?请发布完整的异常StackTraceit。在java中,您必须获得它的长值。但是stacktrace仍然有助于确认我真的很抱歉我忘了发布完整的stacktrace我完全忘了。还有,@LukeWoodward谢谢,你的链接帮了忙。问题是我使用的JDBC连接器。使用最新版本解决了这个问题。谢谢你的帮助。这完全不必要,也解决不了问题。15多年前,MySQL Connector/J的前身有一个错误版本需要注册,因为他们将驱动程序注册放在实例初始值设定项中,而不是静态初始值设定项中。假设OP使用的是符合JDBC 4的驱动程序,那么在这种情况下甚至不需要使用Class.forName本身,并且已经10多年没有使用过了。如果驱动程序没有正确加载,OP将收到一个SQLException,其中没有合适的驱动程序异常消息。