2012-08-22 81 views
2

我在我的数据库表有以下字段类型转换,从DB数据类型的Java数据类型

field1 of type NUMBER(38) 
other fields 

field2的类型是NUMBER(38)

现在我有一些DAOS它提供我在这fileld1信息对象的形式

Object field1Value 

现在我需要它典型案例的dataType.Which的dataType它应该是什么?对我来说,它是整数
但为什么它被映射到Integer,为什么不是Long或BigDecimal?
整数是32位的,但是该字段的数据是第38位

回答

1

您不应该投射任何东西。这就是DAO的作用 - 在数据库和应用程序代码之间建立桥梁。

您需要更改DAO以提供适当的数据类型。 BigInteger将是最合适的,因为long仅具有64位精度,而Oracle's number(38) datatype具有126位精度,并且您的字段没有小数部分。

+0

DAOS已经存在了,它以对象格式返回它。当我尝试将它转换为BigInteger时,它给出异常说不能从整型转换为BigDecimal。我知道DAO应该提供一个具体的数据类型,但它的不是这里的情况,因为我没有拥有它。现在的问题是我可以将它整型为整数。我会有损失precesion.I相信那些只是整数,并且没有小数部分 – user978939