欢迎来到天天文库
浏览记录
ID:44009923
大小:52.50 KB
页数:4页
时间:2019-10-17
《学习笔记之什么是持久化和对象关系映射orm技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、学习笔记之什么是持久化和对彖关系映射ORM技术学习笔记之什么是持久化和对象关系映射ORM技术byNavenat2005-09-19何谓“持久化”持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备屮(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。何谓“持久层”持久层(Persis仙ccLayer),即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。何谓“对象数据映射(ORM)”ORM-Object/RelationalMapper
2、,即“对象■关系型数据映射组件”。对于O/R,即Object(对象)和Relational(关系型数据),表示必须同时使用面向对象和关系型数据进行开发。备注:建模领域屮的0RM为Object/RoleModeling(对象角色建模)。另外这里是“0/RMapper”而非“0/RMapping”。相对來讲,0/RMapping描述的是一种设计思想或者实现机制,而O/RMapper指以O/R原理设计的持久化框架(Framework),包括O/R机制述有SQL自生成,事务处理,Cache管理等。除了0RM技术,还有以下几种持久化技术主动域对象模式它是在实现中封装了关系数据模型
3、和数据访问细节的一种形式。在J2EE架构中,EJB组件分为会话EJB和实体EJBo会话EJB通常实现业务逻辑,而实体EJB表示业务实体。实体EJB乂分为两种:山EJB本身管理持久化,即BMP(Bean-ManagedPersistence);有EJB容器管理持久化,即CMP(Container-ManagedPersistence)oBMP就是主动域对象模式的一个例子,BMP表示由实体EJB自身管理数据访问细节。主动域对象木身位于业务逻辑层,因此采用主动域对象模式时,整个应用仍然是三层应用结构,并没有从业务逻辑层分离出独立的持久化层。JDO模式JavaDataObjec
4、ts(JDO)是SUN公司制定的描述对象持久化语义的标准APL严格的说,JDO并不是对象-关系映射接口,因为它支持把对象持久化到任意一种存储系统中,包括关系数据库、面向对象的数据库、基于XML的数据库,以及其他专有存储系统。由于关系数据库是目前最流行的存储系统,许多JDO的实现都包含了对象■关系映射服务。CMP模式在J2EE架构屮,CMP(Container-ManagedPersistence)表示由EJB容器来管理实体EJB的持久化,EJB容器封装了対象■关系的映射及数据访问细节。CMP和ORM的和似之处在于,两者都提供对彖■关系映射服务,都把对彖持久化的任务从业务
5、逻辑中分离出来。区别在于CMP负责持久化实体EJB组件,而ORM负责持久化POJO,它是普通的基于JavaBean形式的实体域对象。—•般把基于JavaBean形式的实体域対象称为POJO(PlainOldJavaObject),意为乂普通乂古老的Java对象的意思。随看各种ORM映射工具的日趋成熟和流行,POJO有重现光彩,它和基于CMP的实体EJB相比,即简单又具有很高的可移植性,因此联合使用ORM映射工具和POJO,已经成为一种越来越受欢迎的H用来取代CMP的持久化方案。POJO的缺点就是无法做远程调用,不支持分布式计算。为什么要做持久化和ORM设计在目前的企业应
6、用系统设计中,MVC,即Model(模型)-View(视图)・Control(控制)为主要的系统架构模式。MVC中的Model包含了复杂的业务逻辑和数据逻辑,以及数据存取机制(如JDBC的连接、SQL牛成和Statement创建、还ResultSet结果集的读取等)等。将这些复杂的业务逻辑和数据逻辑分离,以将系统的紧耦合关系转化为松耦合关系(即解耦合),是降低系统耦合度迫切要做的,也是持久化要做的工作。MVC模式实现了架构上将表现层(即View)和数据处理层(即Model)分离的解耦合,而持久化的设计则实现了数据处理层内部的业务逻辑和数据逻辑分离的解耦合。而ORM作为持
7、久化设计中的最重要也最复杂的技术,也是冃前业界热点技术。简单來说,按通常的系统设计,使用JDBC操作数据库,业务处理逻辑和数据存取逻辑是混杂在一起的。一般基本都是如下几个步骤:1、建立数据库连接,获得Connection对象。2、根据用户的输入纟R装杳询SQL语句。3、根据SQL语句建立Statement对象或者PrcparcdStatcmcnt对象。4^用Connection对象执彳亍SQL语句,获得结果集ResultSet对彖。5、然后一条一条读取结果集ResultSet对•象中的数据。6、根据读取到的数据,按特定的业务逻辑进行计算。
此文档下载收益归作者所有