首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
高级数据存取框架的研究与实现
来源:本站整理  作者:佚名  2009-02-04 11:04:59



1 引言
    Sun Java Center从结构上将基于J2EE的设计模式分为表示层模式、业务层模式和集成层模式。针对J2EE的不同应用,提出了分离表示层和业务层的模式和框架。而许多应用系统设计都涉及数据库或持久性数据存储,无论是采用Java数据库连接(Java Database connectivity,简称JDBC)还是某种实体组件,大多数应用系统设计都将其直接用于集成层,这样则混淆业务逻辑和数据存取,增加应用开发的复杂性,降低开发效率,增大维护工作量。
    业务逻辑与具体应用有关,而与数据分布和存取方法无关。数据存取是持久性逻辑,其常规操作如创建、读取、更新和删除(Creatc,Read,Update,Delete,简称CRUD)与业务规则无关。基于上述观点和提高复用性的考虑,这里提出一种基于JDBC的高级数据存取框架,该框架旨在用于分离持久逻辑与业务逻辑,即在应用开发中提取数据存取逻辑,使其完全脱离业务逻辑,并封装在独立的框架中,再以统一接口支持业务逻辑,从而提高软件开发效率。

2 高级数据存取框架设计
   
采用会话外观(Session Facade,简称SF)模式实现业务逻辑与持久性逻辑的关联。会话外观模式主要用于处理集中的工作流,为表示层提供统一、粗粒度的对象访问。
    实体组件可提供一种特殊的数据处理方法,但无标准Java接口,缺乏灵活性。因此会话组件利用通用的Java数据存取接口访问数据。使用实体组件存在诸多问题:复杂性导致的性能降低;BMP中的n+l查询发现者等。虽然使用JDBC容易出错,代码量大,但将操作JDBC的代码封装成高级API,大大抑制相应缺陷,并提供使用存储过程。这样就可以跨越多个数据库表的更新;RDBMS从非J2EE环境移植到J2EE环境等。
    为了能应用于多种数据库,保证设计的可移植性,将业务逻辑与JDBC相应成份分离,把JDBC的使用封装到一个抽象层中,屏蔽对JDBC和具体RDBMS的依赖性。这样不仅保持了系统的灵活性,而且层次分明,易于维护。

3 高级数据存取框架模型与实现
   
封装数据存取接口和实现,以熟知的产品表Product和销售明细表SellDetail为例,其中,Product具有产品标识ID和产品名NAME;SellDetail具有产品ID,销售日期DATE和销售量AMOUNT的字段。这样可根据产品ID查询产品的销售清单。
3.1 根据业务需求设置数值传递对象类Value Object
    对于查询操作,输入产品ID,则输出产品名、销售日期和销售数量:而对于插入操作,输入产品ID、销售日期和销售数量。数值传递对象类构造如下:

   
    传递数据有两种方法:一是将输入数据直接设置到值对象类的相应变量中,再将该类实例作为参数,调用EJB端会话Bean中的相应方法;二是只传递输入数据的变量,在会话Bean中再将输入数据的变量值设置到值对象类中进行数据存取。通常在会话Bean中设有合法性检验功能,仅当用户身份合法且具有授权才允许查询,否则会拒绝请求。采用第二种方法效率高。不设数值传递对象类,直接使用动态数组接收并传递数据也可实现相应的功能。
3.2 SellDataDAFramework类
    该类为关键类,包含具体数据存取接口实现类的对象。


在大多数问题中都使用了异常SOLException,从SOLExcep—tion中提取信息,一般用户很难理解,只有通过检查数据库供应商提供的特有代码,才能弄清异常原委。

4 DAccess类
    DAccess类实现了SelIDataDAccess接口,一个接口中CRUD方法是唯一的,针对不同方法,需要重新派生一个实现类,例如DAccess01、DAccess02等。SellDataDAFramework使用DAccess类的对象起索引或指针的作用,并将其加入到vecDAccess中,通过getDAccess方法来实现,从而执行具体的CRUD操作。下面以DAccess0l为例进行说明。

[1] [2]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:14,128.91000 毫秒