java 数据库映射的javabean中有的字段是int类型有的是integer类型有规范吗
答案:3 悬赏:40 手机版
解决时间 2021-04-07 01:41
- 提问者网友:蔚蓝的太阳
- 2021-04-06 21:07
java 数据库映射的javabean中有的字段是int类型有的是integer类型有规范吗
最佳答案
- 五星知识达人网友:夜风逐马
- 2021-04-06 22:31
统一用Integer ,
int的默认值是0,而Integer的默认值是null,如果你数据库那个字段没有值,你用int存储,不是变成0了么?
int的默认值是0,而Integer的默认值是null,如果你数据库那个字段没有值,你用int存储,不是变成0了么?
全部回答
- 1楼网友:举杯邀酒敬孤独
- 2021-04-06 23:58
Integer有一个明显的好处,就是它能比int多表示一个值,没错就是null。假如一个属性,名字叫a,假如它的类型是Integer,那它就可以区别来有和没有值,比如你刚new出来一个对象,还没来得及给a赋值呢,此时a就是null,对吧,没有值。如果换成int类型呢,他有值,是0。假如这个属性是age,用户不想告诉你他的年龄,他就把用户名,邮箱啥的填了,年龄他没有填,此时如果这个age是Integer类型的,默认值就是null,保存到数据库,也就是对应的年龄那一列没有值。如果这个age是int类型,默认是0,也就是说数据库年龄那一列是有值的,是0,0岁?当然你可以自己写逻辑额外处理一下。
然后假如你这个字段是主键,对于一些ORM框架来说,他的逻辑很有可能有这样的,你这个字段有值,他就认为数据库里面有对应的记录,他就执行更新操作,这个字段没有值,他就认为数据库里面没有对应的记录,他就执行插入操作。假如这个字段是int类型,他就一定有值啊对不对,如果是Integer类型,他就可以没有值嘛(值为null也就是没有嘛)
还有其他一些区别比如什么性能问题,你要对这个玩意儿反反复复加啊减的,Integer是对象啊,性能相比int可能有数倍的差距,你要根据实际情况进行考虑。
然后假如你这个字段是主键,对于一些ORM框架来说,他的逻辑很有可能有这样的,你这个字段有值,他就认为数据库里面有对应的记录,他就执行更新操作,这个字段没有值,他就认为数据库里面没有对应的记录,他就执行插入操作。假如这个字段是int类型,他就一定有值啊对不对,如果是Integer类型,他就可以没有值嘛(值为null也就是没有嘛)
还有其他一些区别比如什么性能问题,你要对这个玩意儿反反复复加啊减的,Integer是对象啊,性能相比int可能有数倍的差距,你要根据实际情况进行考虑。
- 2楼网友:長槍戰八方
- 2021-04-06 22:53
int是基本数据类型,integer是包装类。而对8种数据类型的“包装”称为包装类。包装类符合对象特征,提供了一些必要的属性和方法。例如:int i=6;
Integer intVal= new Integer(100);//实例化integerL类intVal和intVal2,intVal的初始值为100
Integer intVal2= new Integer(i);
Integer intVal= new Integer(100);//实例化integerL类intVal和intVal2,intVal的初始值为100
Integer intVal2= new Integer(i);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯