当前位置:首页 > 模拟 > 模拟
[导读]为了寻求更有效的数据存取方法,提出一种基于JDBC的高级数据存取框架,该框架旨在用于分离持久逻辑与业务逻辑。提高软件开发效率。结合工程实际分析该框架的设计思想,详细论述了该框架的实现与应用。并给出进一步实现内容和基于DAO模式实现同类抽象框架的要点,结果表明基于JDBC的高级数据存取框架比传统数据存取具有优越的代码复用,更易于实现。

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为例进行说明。


5 调用高级数据存取框架
   
以会话Bean为例,说明如何调用高级数据存取框架。会话Bean所含的相应方法接收到参数后,先检验输入合法性和权限等业务,再调用DAccess类进行数据存取操作。


6 分析研究高级数据存取框架
   
为了解决数据库类型和数据存储形式的差异,Sun JavaCenter提出了数据访问对象(Data Access Obiect,简称DAO)模式,使用DAO抽象和封装所有对数据源的访问和连接,提供用户统一的访问方法,其内部实现对用户是透明的。基于DAO模式的实现框架有多种方式。
    (1)JDBC方式将JDBC API操作封装成高级类,供会话组件调用,该类包括存取数据分和获取数据库连接。
    (2)会话组件方式 使用会话组件控制数据存取,可使用应用服务器所提供的基础结构服务,如声明式访问控制和资源池等,但业务逻辑和持久性逻辑混在一起。
    (3)实体组件方式 采用实体组件作为数据存取手段.但导致实体组件的复杂性和性能降低。
    其中JDBC方式和所讨论的框架相似,最大不同在于所讨论的框架是将数据库连接部分在会话组件中实现,会话组件中统一关闭连接符。如果连续两次以上访问数据库,则无需重建连接。
    基于JDBC的高级数据存取框架把业务逻辑和数据存取部分由不同类处理,彻底解决了二者间的重叠问题。经验证该框架运行良好。在会话Bean中,只需取得与具体数据库的连接以及指定在哪个DAFramework中获得合理DAccess接口实例即可。针对不同的数据库提供商,只需在会话Bean中获得各自的数据连接符,将其传给DAFramework,而不用改变框架类中的代码,测试结果证明,该数据存取框架相比传统的数据存取方法易于实现代码级复用。
    异常分级处理实现是将JDBC异常转换成用户理解的普通异常,这需要根据SQLException所含的供应方错误代码及SQLState码分类处理,最后解析出具体错误。
    基于JDBC的框架不包含连接数据库,框架内各个组件与具体数据库无关,即当数据库发生非结构性变化时,如服务器位置或数据库类型变更,组件保持不变,故易用应用生成器(Application Generator)自动生成框架实例,并向最终用户提供可视化交互界面。

7 结语
   
针对应用开发存在的问题,寻求更有效的数据存取方法,提出一种基于JDBC的高级数据存取框架,该框架旨在用于分离持久逻辑与业务逻辑,提高软件开发效率。结合工程实际表明基于JDBC的高级数据存取框架具有优越的代码复用,易于实现。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭