从数据库中获取长值

时间:2015-10-12 07:17:44

标签: java jdbc

我的数据库包含一个数据类型为ARR_ID的字段NUMBER(20)

值为= 100013085001

某些java应用程序正在获取此值,并且它们使用Integer作为获取值的数据类型。

在其应用程序的输出中,该值显示为1228837193

这个值如何用Java转换我不知道? 当数据太大而无法包含在数据类型中时会发生什么? 应用程序不应该在这种情况下抛出错误吗?

2 个答案:

答案 0 :(得分:1)

这取决于您使用的SQL驱动程序。当我使用SQLite驱动程序时,我看到了您描述的情况。我也有点担心并检查了消息来源。数据类型由列中的值确定。如果它不适合Integer使用Long

我不记得这对于一个系列是如何工作的。您可能想要检查您正在使用的驱动程序的来源(如果它也是开源的)。

答案 1 :(得分:0)

如果您使用JDBC然后使用20位整数(例如12345678901234567890),程序将抛出com.mysql.jdbc.exceptions.jdbc4.MySQLDataException:' 1.2345678901234567E19'在列' 1'超出数据类型INTEGER的有效范围。看来你使用的是我没有的Oracle,这是针对mysql的,你可以自己试试。