序:
关于持久层、持久性、持久化这几个名词,对我们平时应该是很常见的,其实看多了也大概知道了其中的意思,但是如果让我详细的介绍她们的精确定义,可能就不太容易了,下面我就详细介绍一下,这三个词的精确定义,以及他们都是在哪里常见的。
讨论持久层之前,首先讨论一下,这里的层是什么意思?
答:百度百科云,量词。用于重叠、可分出层次的事物:千~饼、三~楼。也就是层次的意思。
然后再讨论持久是什么意思?
持久是相对与瞬时来说的,我认为,这里的持久层也可以说成是数据持久保持层,因为这个持久是作用在数据上的,我们需要将数据持久的存储到硬盘等设备上。
持久层:
百度百科云,持久层,也叫数据访问层,DAL 层,其主要功能是负责数据库的访问。简单的说法就是实现对数据表的Select(查询),Insert(插入),Update(更新),Delete(删除)等操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。
现在来说说我对持久层的理解,我们知道,对于重要的数据,我们是需要长期保存的,最主要的方式就是把它放到数据库中,由此就引出了对数据库的操作的层面的问题,我们把对数据库的Select(查询),Insert(插入),Update(更新),Delete(删除)等操作的问题的解决或者实现,放到了持久层,这也就是持久层的定义,**实现对数据库表的Select(查询),Insert(插入),Update(更新),Delete(删除)等操作的层次(层级)。**再简单的说,就是负责持久化数据到DB的那一层。
相信现在能够理解持久层的意思了,现在来讨论持久性,显然,持久性是一种性质,这个性质可以形容很多事务,我对它的抽象定义是,在物理产品设计的生命周期内,系统保持可用,而无需重度维护/维修的能力。
最后来说持久化,谈到 XX 化,就明白这是一个过程,或者机制。持久化是将程序数据在持久状态和瞬时状态间转换的机制。通俗的讲,就是瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存)。JDBC就是一种持久化机制。文件IO也是一种持久化机制。