smile_elims

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

posted on 2016-03-29 15:37  smile_elims  阅读(792)  评论(0)    收藏  举报