当前位置:首页 > 模拟 > 模拟
[导读]为了寻求更有效的数据存取方法,提出一种基于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的高级数据存取框架具有优越的代码复用,易于实现。

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

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

要问机器人公司哪家强,波士顿动力绝对是其中的佼佼者。近来年该公司在机器人研发方面获得的一些成果令人印象深刻,比如其开发的机器人会后空翻,自主爬楼梯等。这不,波士顿动力又发布了其机器人组团跳男团舞的新视频,表演的机器人包括...

关键字: 机器人 BSP 工业机器人 现代汽车

南京2022年10月17日 /美通社/ -- 日前《2022第三届中国高端家电品牌G50峰会》于浙江宁波落幕,来自两百余名行业大咖、专家学者共同探讨了在形势依然严峻的当下,如何以科技创新、高端化转型等手段,帮助...

关键字: LINK AI BSP 智能家电

模拟

31144 篇文章

关注

发布文章

编辑精选

技术子站

关闭