适当映射到oracle序列的java类型

时间:2010-10-08 14:57:22

标签: java oracle10g

可能这是一个真正的初学者问题,但我无法在网上找到答案。我有一个Oracle数据库,其表的主键是NUMBER(16)并且填充了一个序列,其最大值为999999999999999999999999999。

我应该使用什么java类型来保存序列值? long,biginteger还是bigdecimal?

提前谢谢

2 个答案:

答案 0 :(得分:5)

长期应该这样做,因为它的最大值为2 ^ 63 - 1

答案 1 :(得分:1)

首先,请使用大量的科学记数法。我花了很多时间来确定你发布的数字是10 27

如果我理解你的问题,我们可能将数据库从中删除。我是否正确地认为你的问题归结为“我需要存储高达10 ^ 27的正整数。适合这种情况的最小数据类型是什么?”

如果是这样,快速google表明long肯定适合。 BigIntegerBigDecimal都肯定会包含您的号码,因为它们是精确的,但您不需要它们,并且它们可能会使您的代码更多笨重(由于不是原始人)。因此,除非您特别需要Bignum功能和方法,否则请使用long。 (而且我看不出为什么你使用BigNecimal而不是BigInteger作为绝对整数的输入的原因。)