过程:
1.建了userinfo表
   create table userinfo(userid Integer not null,
                         username varchar2(10),
                         passwd Integer)
2.创建主键
   alter table userinfo add(constrints id_pk primary key(userid))3.插入数据
   insert into userinfo values(1001,'Jack',123)4.在MyEclipse7.5中建web项目,并建Hibernate框架,连接Oracle.5.对表userinfo做影射,得到类Userinfo.class问题出现了  在类Userinfo.class中userid变成BigDecimal类型的了,这是怎么回事啊?不是应该为Int或Integer类型吗?BigDecimal这是个什么东西啊?请大虾们指教!

解决方案 »

  1.   

    一提到Java里面的商业计算,我们都知道不能用float和double,因为他们无法进行精确计算。但是Java的设计者给编程人员提供了一个很有用的类BigDecimal,他可以完善float和double类无法进行精确计算的缺憾。BigDecimal类位于java.maths类包下。
      

  2.   

    BigDecimal还不好啊?int、long都没有它能表示的数据长
    因为你的表定义里面指定的是Integer,晓得不,oracle里面你desc userinfo看看就知道了,字段长度已经变成了 number(38)了,这么长的数字,hib不用BigDecimal难道用Integer啊?你如果需要int的长度,就要显式指定建表语句里面把integer改成 userid number(10) ,int范围好像是21亿多,忘了。