当前位置:首页 > 开发 > IT生活 > 正文

什么是持久化?

发表于: 2014-03-31   作者:cuisuqiang   来源:转载   浏览次数:
摘要: 有一个人揪着问我什么是数据持久化,简单来说:对于概念上来说,就是数据保存到硬盘系统重启可恢复,对于开发人员来说,就是对象保存到数据库。  但是拿这个问题一直问下去的话,显然以上解释不足以应付,一狠心,我从网上把一些理论内容搬下来了。   什么是持久化?持久化是将程序数据在持久状态和瞬时状态间转换的机制。持久化(Persistence),即把数据(如内存中的对象)保存到可永

有一个人揪着问我什么是数据持久化,简单来说:对于概念上来说,就是数据保存到硬盘系统重启可恢复,对于开发人员来说,就是对象保存到数据库。 

但是拿这个问题一直问下去的话,显然以上解释不足以应付,一狠心,我从网上把一些理论内容搬下来了。

 

什么是持久化?
持久化是将程序数据在持久状态和瞬时状态间转换的机制。
持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。
持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。
JDBC就是一种持久化机制。文件IO也是一种持久化机制。

 

如何去理解?
在一定周期内保持不变就是持久化,持久化是针对时间来说的。
数据库中的数据就是持久化了的数据,只要你不去删除或修改。
比如在IE浏览器中一次Session会话中Session对象变量也是不变的,是Session容器中持久化。
对象持久化的方式有很多种,根据周期不同有,page,Session,Application。
对象序列化机制对于需要将对象的状态保存到文件中,而后能够通过读入对象状态来重新构造对象,恢复程序状态,
对象序列化的过程是对象持久化的方法之一,把对象保存到文件中。

 

不同层面理解

简单的理解持久化可以在二个层面:应用层和系统层
应用层
如果关闭(shutdown)你的应用然后重新启动则先前的数据依然存在。
系统层
如果关闭(shutdown)你的系统(电脑)然后重新启动则先前的数据依然存在。

 

序列化是什么?
序列化和持久化很相似,有些人甚至混为一谈,其实还是有区别的,序列化是为了解决对象的传输问题,传输可以在线程之间、进程之间、内存外存之间、主机之间进行。之所以在这里提到序列化,是因为我们可以利用序列化来辅助持久化,可以说凡是可以持久化的对象都可以序列化,因为序列化相对容易一些(也不是很容易),所以主流的软件基础设施,比如.net和java,已经把序列化的框架完成了。
持久化方案可以分为关系数据库方案、文件方案、对象数据库方案、xml数据库方案,现今主流的持久化方案是关系数据库方案,关系数据库方案不仅解决了并发的问题,更重要的是,关系数据库还提供了持久化服务之外的价值:统计分析功能。

 

相关实现
Hibernate
hibernate为应用程序提供了高效的O/R关系映射和查询服务,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。
JPA
JPA(Java Persistense API)是EJB3.0的一部分,为其提供了一套O/R关系映射的API,但不仅限于EJB中使用,它也可以在web应用或者应用程序客户端中被使用,甚至在Java桌面程序中被使用。

 

请您到ITEYE看我的原创:http://cuisuqiang.iteye.com

或支持我的个人博客,地址:http://www.javacui.com

 

什么是持久化?

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
之前排查问题有涉及到一些jvm的知识,之前提到的是一些基础的gc日志知识,这次接着简单分析jvm的设
1、快照(snapshots)   缺省情况情况下,Redis把数据快照存放在磁盘上的二进制文件中,文件名为d
官方文档: http://activemq.apache.org/persistence.html ActiveMq持久化相关配置:/usr/local/apach
1. Spring的DAO理念 Spring提供了一套抽象的DAO类,供开发者扩展,这有利于以统一的方式操作各种DAO
tomcat6 中关闭服务 会自动把session持久化 存储在work目录下的 一个session.ser 对于Session的管理
Hibernate持久化对象: ★持久化类应该遵守的规则: Hibernate操作的持久化类基本上都是普通、传统
操纵持久化对象 ++YONG原创,转载请注明 1. 理解Session的缓存: 在Java里面,缓存通常是指Java对象
Redis由于支持非常丰富的内存数据结构类型,如何把这些复杂的内存组织方式持久化到磁盘上是一个难题
看了下quartz集群和持久化的相关东西,发现跟把信息存在内存中一样简单。 StdJDBCConstants类存放的
Spark最重要的一个功能,就是在不同操作间,持久化(或缓存)一个数据集在内存中。当你持久化一个RD
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号