码迷,mamicode.com
首页 > 其他好文 > 详细

你注意了么?int与Integer的区别

时间:2016-07-02 11:53:05      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

   上次做项目时遇到了一个小问题。

   我把javabean中的custid属性定义为int类型,当然与数据库中相应类型是一致的,而且在hibernate文件中配置时专门设置了not-null="false",结果新增数据时不管怎样custid都为0。当我把int 类型改为Integer类型时,问题才得以解决。其实对于这类问题,应该明白的是,int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer。在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字符串,而int默认的默认值为0,所以用el表达式在文本框中显示时,结果为0,所以,int不适合作为web层的表单数据的类型。在Hibernate中,如果将OID定义为Integer类型,那么Hibernate就可以根据其值是否为null而判断一个对象是否是临时的,如果将OID定义为了int类型,还需要在hbm映射文件中设置其unsaved-value属性为0。

你注意了么?int与Integer的区别

标签:

原文地址:http://www.cnblogs.com/wlp1505159848/p/5634963.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!