Java JDBC/MySQL如何处理超出整数范围的整数?

Java JDBC/MySQL如何处理超出整数范围的整数?,java,mysql,jdbc,Java,Mysql,Jdbc,因此,我正在用JDBC编写代码,以便在循环中获得结果集。问题是,数据库中的字段是INT(9)。当我导入它时,如果我从resultset中将int设置为该值,它会将其截断为不同的3位int。但是,如果我将读取数据的变量设置为long,则它是正确的。所以我可以得到正确的数据,这很好 现在,当尝试使用以前找到的号码获取不同的结果集时,我的结果集最终为空。我试过: long SSN = 100200300; pStatement = connect.prepareStatement("

因此,我正在用JDBC编写代码,以便在循环中获得结果集。问题是,数据库中的字段是INT(9)。当我导入它时,如果我从resultset中将int设置为该值,它会将其截断为不同的3位int。但是,如果我将读取数据的变量设置为long,则它是正确的。所以我可以得到正确的数据,这很好

现在,当尝试使用以前找到的号码获取不同的结果集时,我的结果集最终为空。我试过:

    long SSN = 100200300;

    pStatement = connect.prepareStatement("SELECT Name FROM Person p WHERE p.ID=?");

        ResultSet rs;
稍后在循环中:

    pStatement.setLong(1, SSN);
    rs = pStatement.executeQuery();

最后总是空的。我也不能使用pStatement.setInt,因为它是一个很长的函数。在JDBC中工作时,有没有关于如何处理数据库中INT类型的大数的想法?

long=64位,mysql INT=32位。如果你想有一个1:1的映射,那么你应该使用一个mysql bigint,它也是64位的。”…它将它截断为一个不同的3位整数。”-这意味着什么?这很有效。我从那里弄明白了。谢谢我的意思是它正在转换数字,例如100200300到101或其他。