dljd_(002-003)_什么是持久化
一、持久化概念
持久化:即把数据(如内存中的对象)保存到持久化设备(即可永久保存的存储设备中,如磁盘)。
持久化在计算机中的主要应用场景就是将内存中的数据存储到关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等。
二、为什么要有持久化?
1.内存不能持久
2.内存容量有限)(内存是用于存放计算数据的)
3.业务数据共享的需要(需要公共的持久设备)
4.为了使用大规模的检索(所以要将数据改为适合大规模检索的格式)
5.数据管理的需要(安全、备份)
6.持久化解决了程序(机器)与某些特定持久数据(比如上传文件到云上)的解耦。
三、持久化在现实中的影子
持久化最根本问题是为了降低耦合度乃至解耦、比如一个程序员或者软件工程师在一个企业里面与一个项目高度耦合(这里指这个项目离开这个程序员或者软件工程师就没法运行)、那么这个程序员/软件工程师的薪水可想而知、企业里面为了解决这种耦合度(为了企业利益)、专门定制了各种各样的标准、比如:代码的规范(包名/类名/变量/常量/...等等的规范)、你必须按照这个规范来、假如说某个程序员没有按照这个规范来,其它程序员在解决某问题时遇到他写的代码很难看懂、这样呢降低了这个程序员的开发效率(如果大部分人不遵守呢?)、间接的给企业带来了损失。所以呢,这种不遵守企业标准的程序员一般企业是不会雇佣的。这就是为什么现在企业有三个月试用期的原因、三个月中你或多或少也提交写代码吧、这些代码的书写有没有遵守企业定制的标准来决定你的去留、这就是现在软件开发企业为什么非常重视程序员的编码规范,因为你的书写问题间接的影响了企业的利益啊!现实中各个行业都有自己或多少制定的规范。一个高级管理层的领导必须有这种解耦企业员工和工作岗位的能力、做到解耦了、那么这个岗位不会过分的去依赖某一个员工。如果在某一天这个岗位员工离职了或者...(脑补)就不会给企业带来过大的损失了,这就是作为一个企业管理层必须要解决的问题。相应如果解决了这个问题,那么相应的这个岗位的工资就↓来了。企业利润就↑了。
四、持久化的几种类型
4.1序列化
即实现了serilizable标识接口的类。适合于少量的对象进行暂时的持久化,适合于在网络上传输对象。但不符合企业级应用的需要。因为企业应用中对数据的要求是大量的,长时间保存的、需要进行大规模查询。
4.2jdbc
优点:功能完备、从理论上说效率是最高的;可以存储海量的数据并且适合进行大规模检索;
缺点:开发效率和维护效率低;开发难度大,代码量大,占到总代码两的1/3,或1/2;
4.3orm
ORM即Object Relationship Mapping,对象关系映射。它是一种解决问题的思路,是一种思想。它的实质就是将关系数据库中的业务数据用对象的形式表示出来,并通过面向对象的方式将这些对象组织起来,以实现系统业务逻辑。或者说,ORM就是内存中的对象与数据库中的数据间的映射关系。
ORM实现框架的特点:开源的,实现了JDBC的封装,实现了简单的API,轻量级解决方案,持久化对象是一个POJO类。最有名的ORM框架就是Hibernate。
4.4JPA框架
JPA,Java Persistence API,是Java EE 5的标准ORM接口。它是一种规范,一套接口,但不是实现。用于实现这一规范的ORM很多,其中Hibernate就是之一。