当我尝试从Java文件访问数据库(BIGINT
)的内容时,我遇到了错误。我无法弄清楚此异常的修复方法。
我收到以下错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLDataException:
'5.62949953421312E15' in column '1' is outside valid range for the datatype INTEGER.
Java代码:
long pID=0;
SQLStatement = connection.createStatement();
String Query101 = "select projectID from Project";
ResultSet rs101 = SQLStatement.executeQuery(Query101);
while (rs101.next()) {
pID = rs101.getLong("ProjectId");
}
SQL代码:
CREATE TABLE Project (projectID bigint(20) Primary key)
我正在使用的数据库表中projectID
的值为5629499534213120
。
答案 0 :(得分:1)
你的pID是long类型,它是4个字节,最大值是2 ^ 31-1 = 2,147,483,647。 所以你不能在pID = rs101.getLong(“ProjectId”)中为它分配5.62949953421312E15;
答案 1 :(得分:1)
查看this page后查看是否存在任何已知的MySQL Connector / J问题。我相信您的 ProjectID 列实际上是一个INT(INTEGER的同义词),正如异常所示。我会查看你的 Project 表并确保该列真的是BIGINT。
BIGINT
是MySQL的64位有符号整数,就像long
是Java的64位有符号整数一样。意思是它们共有相同的范围-2 63 到2 63 - 1。
您使用的是正确的方法。但我认为你的列的数据类型不是你想象的那样。
答案 2 :(得分:0)