实体类为什么使用包装类
Posted 明月予清风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实体类为什么使用包装类相关的知识,希望对你有一定的参考价值。
以前只是 知其然不知所以然,搞学问搞工作这样肯定是不行的,今天就来扯一下为什么用包装类。
--------------------------------------------------------------------------------------------------------------------------------
基础知识点: 当实例化实体类(实体类此时的属性是用基本数据类型修饰的)对象,却没有赋值的时候。 byte,short,int,long 的初始化默认值为 0 float,double 的初始化默认值为 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对象(代码片段