1.应用程序层次结构演变
这里本来应该有张描述应用程序结构演变的图,可是CSDN在这里上传不了,所以没有传上来.
纵观几十年的计算机应用软件的演变过程,应用程序逐渐由单层体系结构发展为多层体系结构。最初应用软件只是在大型机上的单层应用程序,大都采用文件系统存储数据。20世纪70年代,随着数据库的普及,原来的单层结构发展为双层结构。在双层结构中,实现了数据存放与应用程序的分离。但是,负责用户界面交互的代码与业务逻辑混杂在一起,一个小的系统尚可以维护但是对于企业级的应用,长期的维护就是一件十分困难的事情。因此,三层的体系结构应运而生。在三层结构中,把原来的应用程序层分成了视图层和业务逻辑层、数据库层维持不变。随着软件行业的蓬勃发展,人们感觉这样频繁的操作数据库和大量的底层代码的重复书写极大的浪费了程序人员的心血,Hibernate,Spring,等框架的应运而生了。
在Hibernate中又将原来原业务逻辑层分成了业务逻辑层和持久层。(现在主流的分层结构依然是三层结构).
2.什么是持久化? 为什么要持久化?
1.什么是持久化?
本人找了好多文章都没有找到满意的答案,最后是从孙卫琴写的《精通Hibernate:Java对象持久化技术详解》中,看到如下的解释,感觉还是比较完整的。摘抄如下:
狭义的理解: “持久化”仅仅指把域对象永久保存到数据库中;广义的理解,“持久化”包括和数据库相关的各种操作(持久化就是将有用的数据以某种技术保存起来,将来可以再次取出来应用,数据库技术,将内存数据一文件的形式保存在永久介质中(磁盘等)都是持久化的例子.)。
● 保存:把域对象永久保存到数据库。
● 更新:更新数据库中域对象的状态。
● 删除:从数据库中删除一个域对象。
● 加载:根据特定的OID,把一个域对象从数据库加载到内存。
● 查询:根据特定的查询条件,把符合查询条件的一个或多个域对象从数据库加载内在存中。
2.为什么要持久化?
持久化技术封装了数据访问细节,为大部分业务逻辑提供面向对象的API。
● 通过持久化技术可以减少访问数据库数据次数,增加应用程序执行速度;
● 代码重用性高,能够完成大部分数据库操作;
● 松散耦合,使持久化不依赖于底层数据库和上层业务逻辑实现,更换数据库时只需修改配置文件而不用修改代码。
http://www.cnblogs.com/cuihongyu3503319/archive/2007/12/17/1002875.html
分享到:
相关推荐
sentinel-mysql规则持久化,持久化规则数据至mysql,包含数据表结构,配置文件,jar,一键启动
很不错的redis持久化详细方案书籍,能帮助初学者快速的入门redis框架和运用。
版本:1.8 内容:已经对源码进行改造,使用push方式进行规则持久化 持久化的规则有:授权规则、降级...为什么分开上传? 因为有些人需要源码二次改造,看了CSDN后台并没有发现可以重新上传资源的功能,只能再传一次。
ios 数据存储,数据持久化,包含Preference 、文件存储、归档、数据库 、 CoreData的使用
Hibernate、iBATIS、TopLink、Castor JDO、Apache OJB等这么多持久层框架,你还在为学习上面那个框架而苦恼吗?你还为研究下一代是那个而头疼吗? 朋友,学习JPA吧!JPA的出现就是解决您上面的苦恼的。
sentinel 1.8.3持久化到nacos
描述MQ消息持久化,在队列管理器发生异常时,传送到队列中的信息怎样通过日志将信息恢复到队列中。
域对象在持久化层的状态
Hibernate操作持久化对象Hibernate操作持久化对象Hibernate操作持久化对象Hibernate操作持久化对象Hibernate操作持久化对象
clj的国家集训队论文,关于可持久化数据结构(主席树)
Quartz.net 任务调度数据库持久化和集群;持久化能保证实例重启后job不丢失、 集群能均衡服务器压力和解决单点问题
java持久化的解决方案,java持久化的解决方案
任务调度的持久化功能,即新增修改删除之类的功能,这必须得要有的,不然都不知道后台都有什么作业在跑
自己写的一个持久化层,模仿Hibernate的操作
Redis windows 测试redis持久化功能1
python持久化,python持久化,python持久化 ,python持久化
nacos持久化数据库
本资源是对sentinel-1.8.1中的代码进行修改,可以将规则文件持久化到数据库。下载本包后修改sentinel-dashboard模块中的application.properties中的数据连接地址就可以连上数据库,代码中的sql数据在该模块的sql文件...
介绍redis两种持久化方式及配置,以及它们各自的优缺点
Android数据持久化,SharedPreferences 、内部存储、外部存储、数据库简单使用