Oracle数据库表里是testNum number(2) 这里该怎么处理,让从数据查询出来的数据就是int类型,而不是bigdecimal呢?谢谢。 java.lang.ClassCastException: [Ljava.lang.Object; |
|
10分 |
BigDecimal b = new BigDecimal(100);
int i = b.intValue(); |
+1 |
|
10分 |
+1 |
10分 |
这个…你用oracle之前不先查一下jdbc对应字段类型的吗…
对于数值类型来说 oracle JDBC INTEGER -> short, int, long 是字段情况,一般用long NUMBER -> float, doule, java.math.BigDecimal 存在小数定义下,映射为float/double,否则映射为BigDecimal |
10分 |
很正常的,用java查出来的就是BigDecimal型,用BigDecimal.intValue()一下就可以了。
像我们公司,计算时都是BigDecimal,double都不让用。 顺便送你个BigDecimal的计算方法 http://fengbin2005.iteye.com/blog/1122832 |
谢谢各位了,问题没解决,现在用hibernate查询。查询出来在取或者转类型肯定可以,本来想查出来就是想要的类型,懒得转的。虽然不太喜欢hql,但是它查出来的对象是转换好的,稍微方便点。
|
|
这块我也纠结了很久,最近没啥忙的看了struts2的源代码。DefaultTypeConverter这个类研究研究就明白了
|