我在SQL数据库中有一个表,其值为'数据类型是BIGINT(20),我需要将这些数据用Java中的逻辑进行处理。
java中用于存储返回的BIGINT(20)值的适当数据类型应该是什么?
(我想过使用Long,但也有BigInteger,不能找出什么是好的或合适的)
答案 0 :(得分:3)
这取决于数据库服务器。 Java long
始终实现为8个字节,因为它是标准的一部分。
在MSSQL上,bigint
类型是8个字节,因此它是完美的匹配。
答案 1 :(得分:1)
BIGINT类型不是SQL标准的一部分,因此无法保证它在所有数据库中都能正常工作。但是,至少MSSQL,MySQL,Oracle,Postgresql和IBM DB2都同意它使用8个字节(其中大多数是有符号的,但在DB2中它是无符号的63位值)。
由于Java Long也是64位,所以应该可以正常工作。由于longs比BigIntegers快得多,所以你几乎肯定会使用long。
答案 2 :(得分:1)
MySQL BIGINT:最小值 (-2^63),最大值 (2^63-1)。最大无符号值 (2^64-1)。 https://dev.mysql.com/doc/refman/8.0/en/integer-types.html
Java Long:最小值 (-2^63),最大值 (2^63-1)。最大无符号值 (2^64-1)。 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
所以,这两种类型的大小相同:)
答案 3 :(得分:0)
Long是大数据库Int的完美映射