Java的Long可以保存SQL BIGINT(20)值吗?

cngwdvgl  于 2023-05-27  发布在  Java
关注(0)|答案(4)|浏览(320)

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

在Java中应该使用什么合适的 * 数据类型 * 来存储返回的BIGINT(20)值?

我想用Long,但也有BigInteger,不知道什么是好的或合适的。

fivyi3re

fivyi3re1#

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

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

8cdiaqws

8cdiaqws2#

这取决于数据库服务器。Java long始终以8字节实现,因为它是标准的一部分。
在MSSQL上,bigint类型是8个字节,因此它是一个完美的匹配。

pbossiut

pbossiut3#

Long是数据库中大整数的完美Map

aiqt4smr

aiqt4smr4#

BIGINT类型不是SQL标准的一部分,因此不能保证它在所有数据库中都能正常工作。但是,至少MSSQL、MySQL、Oracle、Postgresql和IBM DB2都同意使用8字节(其中大多数是有符号的,但在DB2中是无符号的63位值)。
因为Java Long也是64位的,所以它应该可以正常工作。因为long比BigIntegers快得多,所以你几乎肯定应该使用long。

相关问题