实体类为什么使用包装类

Posted 明月予清风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实体类为什么使用包装类相关的知识,希望对你有一定的参考价值。

以前只是 知其然不知所以然,搞学问搞工作这样肯定是不行的,今天就来扯一下为什么用包装类。

--------------------------------------------------------------------------------------------------------------------------------

基础知识点:

当实例化实体类(实体类此时的属性是用基本数据类型修饰的)对象,却没有赋值的时候。

byteshortintlong 的初始化默认值为 0

floatdouble 的初始化默认值为 0.0

char 初始化默认值为 " ",空白格,控制台会打印一个特殊符号显示空白格

boolean 初始化默认值是 false
基础知识点:

当实体类的属性是包装类时,实例化实体类对象。

包装类 的初始默认值为 null

在程序和mysql数据库,进行数据交互的时候。mybatis 会校验属性的值是否 为空(!= null),但是如果是 0 就无法校验了,0也是一个结果,会持久化到数据库中保存。

如果使用经典的 JDBC 六步连接,而此时的使用的包装类,那么是会把 null 值持久化到数据库对应的字段的。此时数据库的字段的值就是null ,所以在持久化时需要验空!

《蝴蝶效应》,这就为我们后面用 Java语言实现数据的 CRUD 操作时埋坑。为了避免这种错误带来的困扰,约定实体类不使用基本数据类型!统一使用包装类!

如上是阿里巴巴的开发手册对实体类的要求!必须用包装类型!

接下来看实例:

所以为了避免自己坑自己,别倔强,使用包装类吧,嘿嘿!

--------------------------------------------------------------------------------------------------------------------------------

补充一下:序列化!

为什么实体类要 implements Serializable 接口
private static final long serialVersionUID = 1L;

 

刚才说了,为了方便数据的持久化,所以我们约定使用 包装类型!

而在 后端Java程序  与 前端页面进行数据的交互的时候,我们就需要使用序列化!

首先你不序列化就会报错!

 

......未完待续!这个原理探究明晰了再来补充

以上是关于实体类为什么使用包装类的主要内容,如果未能解决你的问题,请参考以下文章

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段

hibernate Day2

实体类的包装对象作为查询条件

Hibernate实体类编写规则和主键策略

Hibernate实体类编写规则