什么MySQL数据类型将存储此Java BigInteger?

时间:2013-06-18 16:30:29

标签: java mysql hibernate biginteger

我正在使用Java 6,Hibernate 4.1.0.Final和Spring 3.1.1.RELEASE。我有一个字符串(最多32个字符),我希望转换为一个数字,然后再返回一个字符串。我想知道我应该使用什么MySQL(v 5.5)数据类型来存储数字(我认为是BigInteger),我还想知道是否有更好的方法来进行转换。现在,我正在做

// Convert to integer
final BigInteger bigInt = new BigInteger(myString.getBytes());

// Convert back to a string
final String oldString = new String(bigInt.toByteArray());

有问题的字段上的Hibernate映射是

@Column(name = "ORDER_ID")
private BigInteger orderId;

感谢您的帮助,

1 个答案:

答案 0 :(得分:1)

查看NUMERIC数据类型。我用它来存储长达39位的超大十进制数。

数据库字段的类型为“NUMERIC(39)”。

使用的hibernate映射是:

<property name="foo" type="big_integer" column="ORDER_ID" length="39"/>

要从十六进制字符串将字符串转换为BigInteger,请使用:

BigInteger bigInt = new BigInteger(myString, 16);