INT、INTEGER 是 NUMBER 的受限子类型(只表示整数),相当于 NUMBER(38)。
NUMBER 类型最大可表示 38 个十进制位的数值。
integer主键映射时也为bigdecimal:
是因为oracle中的Integer的范围超出了java中的integer的范围,所以要用bigDecimal。
oracle的中integer 是个超大的数据类型,最大可以表示为power(10,126)-1
而java中integer最大是范围是 -32768 到 +32767。
在做sql查询时注入实体时,实体用的integer不能接受
可考虑:
1.java就用bigdecimal,存取都可以用。
2.如果要用integer的话,主键在set时要更改为
public void setId(BigDecimal id) {
Integer bid = id.intValue();
this.Id = bid;
}查询可用但是添加自动主键的话添加不进去
关联映射hibernate时:
bigdecina的类型是不设置number的大小就是bigdecina类型
double类型的话是number(10,2),应该就是double了
number(10)为long
number big_decimal java.math.BigDecimal
number(1) boolean Boolean
number(2)2至4之间 byte Byte
number(8)4至8之间 integer Integer
numbernumber(10)8以上 long Long
参考:http://www.cnblogs.com/shishm/archive/2012/01/30/2332142.html
浙公网安备 33010602011771号