can java';s是否长时间持有SQL BIGINT(20)值?

can java';s是否长时间持有SQL BIGINT(20)值?,java,sql,bigint,Java,Sql,Bigint,我在SQL数据库中有一个表,其中值的数据类型是BIGINT(20),我需要将这些数据放到Java逻辑中进行处理 在java中,存储返回的BIGINT(20)值的合适数据类型应该是什么? (我想用Long,但也有biginger,不知道什么是好的或合适的)这取决于数据库服务器。Javalong始终实现为8字节,因为它是标准的一部分 在MSSQL上,bigint类型是8个字节,因此它是一个完美的匹配。Long是数据库bigint的完美映射。bigint类型不是SQL标准的一部分,因此不能保证它在所有

我在SQL数据库中有一个表,其中值的数据类型是BIGINT(20),我需要将这些数据放到Java逻辑中进行处理

在java中,存储返回的BIGINT(20)值的合适数据类型应该是什么?


(我想用Long,但也有biginger,不知道什么是好的或合适的)

这取决于数据库服务器。Java
long
始终实现为8字节,因为它是标准的一部分


在MSSQL上,
bigint
类型是8个字节,因此它是一个完美的匹配。

Long是数据库bigint的完美映射。

bigint类型不是SQL标准的一部分,因此不能保证它在所有数据库中都能工作。然而,至少MSSQL、MySQL、Oracle、Postgresql和IBM DB2都同意它使用8个字节(其中大部分是有符号的,但在DB2中是一个无符号的63位值)

因为Java的长度也是64位的,所以它应该可以正常工作。由于long比bigInteger快得多,所以几乎可以肯定地使用long.

MySQL BIGINT:min值(-2^63),max值(2^63-1)。最大无符号值(2^64-1)。

Java长:最小值(-2^63),最大值(2^63-1)。最大无符号值(2^64-1)。


因此,这两种类型的大小相同:)

18446744073709551615 bigint(20)最大值。9223372036854775807 long max value.MySQL同时具有有符号和无符号的bigint(20)。这个答案是无符号的。那么如果我们想在db表中存储一个实际的BigInteger呢?那我们应该用什么类型的呢。顺便说一句,谢谢你的回答。