网友 [WOLFU(魔兽.p)]对持久层的解释,留下学习

  一:在JAVA领域,数据存取技术有多种。  
  1、 Jdbc。用JAVA实现关系数据库存取的基础。优点:直接和数据库关联,存取速度快,支持多数据库,细粒度存取。缺点:不支持面向对象存取。在应用程序中,要嵌套复杂SQL命令,事务性语句硬编码到程序中,不便以后维护。程序开发复杂。  
  2、 EntityEJB。Sun   J2EE框架的重量级持久层数据存取技术。优点:可支持简单(无法支持继承,多态)面向对象设计,标准的。支持分布式处理。透明持久。容器管理。缺点:一 个EntityEJB组件需要复杂复杂接口,remote/local接口与其实现之间无法保证编译时的一致性。性能问题。开发周期长。  
  3、 Jdo。轻量级持久框架。优点:o/r   mapping实现,全面支持面向对象设计。弥补EntityEJB的不足。用Java对象取得和保存数据库中的数据。标准的。透明持久。容器管理。缺点:只支持本地调用,缺乏移植性。  
  4、 Hibernate。开源轻量级实现的持久框架。优点:o/r   mapping实现,灵活配置。基于普通java   对象实现持久。对JDBC的轻量级封装实现。支持复杂对象结构。缺点:只支持本地调用,缺乏移植性。  
  二:DAO设计模式应用。  
  由于数据存储介质(数据源如,文件系统、关系数据库、LDAP、其他应用程序等)多样,企业应用程序中,常常涉及多个存储介质间的数据存取。为减少企业应 用程序的复杂性,持久层框架设计便出现。持久层主要目的:在一逻辑层上,抽象数据的持久,使客户层无须知道底层具体的存储介质,所有针对某个存储介质的数 据存取都在持久层封装并实现。其强大之处在于,可以抽象基础存储介质的实现。Jdo、Hibernate,EntityEJB都是持久层实现技术,不同之 处在于,支持存储介质多少,面向对象存储程度,事务管理,灵活性,存取性能等。  
   
  象jdo,hibernate轻量级框架完全支持面向对象持久,似乎,业务逻辑层可以直接和持久层接触。由于业务逻辑层复杂,业务对象并不需要知道在某一 业务过程中,持久层的逻辑(即:持久层是如何存取数据的)。我们用DAO模式,分离业务逻辑层和持久层,使业务对象存取数据时,只要调用具体DAO的存取 方法(CRUD),方法的实现由具体DAO实现处理,业务对象不关心实现细节。其主要优点:1、完全分离持久层逻辑和业务逻辑层。2、为业务层提供抽象接 口,具体数据存取由DAO实现层实现,从而,抽象实现细节。3、DAO模式配合Service   Locator模式,实现数据的缓存等,处理程序性能问题。4、统一处理持久层的抛出异常。5、处理性能、事务等问题。6、具体DAO实现,可解决数据访 问的粒度问题。  
   
  在复杂项目中,使用DAO模式完全分离业务层,和持久层,既:数据库>>持久框架>>DAO>>业务层。  
  选择EntityEJB持久实现时,由于CMP容器带来的透明性,事务管理等特性,简单项目中,可不用DAO模式。涉及多数据源的复杂项目中,用DAO模式分离业务逻辑和持久层,可增强系统灵活性,和可维护性。  
   
  选择轻量级持久框架,其面向对象数据存取技术,透明的持久,在某中程度上可减少业务对象对数据层的了解。在仅有简单逻辑的小项目中,可不用DAO模式,以减少层,提高性能。在有复杂逻辑的项目中,用DAO模式,清晰的分离逻辑层,持久层,可带来维护上的好处。  
   
  用JDBC实现数据存取时,使用DAO模式完全抽象数据源。隐藏具体数据库存取。但要在实现中维护事务,锁处理,主键生成,性能等问题。  
     
  在具体应用过程中,DAO模式,可配合工厂模式,或抽象工厂模式,工厂抽象多个数据源,并生产多个具体的DAO对象。DAO对象为业务对象提供具体的存取数据逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值