前言
实体类中 Integer
和 int
的区别。
实现
-
Integer
的默认值是null
,而int
的默认值是0
。 -
数据库中的
INT
类型对应的是Integer
,而不是int
。 -
定义属性值
int
类型的时候,在数据库中默认null
,当插入操作的时候会把默认值变成 0;定义属性值Integer
类型的时候,在数据库中默认也是null
,因此当插入操作的的时候默认值为null
。
所以在后端对该属性进行判断是否为空时,需注意二者的区别,一个判断是否为 null
,一个判断是否为 0
。但在实际的应用中有些类型的值为 0 是有意义的,如 gender(性别):0(代表女)1(代表男),此时当插入的数据为空时,int就会插入0,产生歧义。
因此建议使用 Integer
,而非 int
。
Java 中 Long
和 long
其实也有相似的性质。
总结
实体类中 Integer
和 int
的区别。