4

我正在使用 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;

谢谢你的帮助, -

4

1 回答 1

1

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

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

使用的休眠映射是:

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

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

BigInteger bigInt = new BigInteger(myString, 16);
于 2013-06-18T19:19:14.213 回答