快速业务通道

J2EE中的业务逻辑和数据库访问决策说明 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
30

使用iBATIS

我开发过的所有企业JAVA应用程序,都是直接执行SQL语句的。早期的程序是执行特定的SQL语句的,后来是用持久层构架再用少量的SQL语句构成的。一开始我直接用JDBC来执行SQL语句,但是后来,我经常写一些小的构架去完成JDBC中那些比较无聊的部分。我也用过一段Spring的JDBC类,这些类除去了JDBC中的许多样板代码。但是无论是我自己写的构架还是使用Spring的类,在Java类映射到SQL语句的时候都会存在问题,这就是我为什么那么高兴的加入iTATIS 那边的原因了。

iBATIS 不仅将应用程序完全的与“数据库连接”、具体的SQL语句隔绝开来,更实现了通过XML描述文档来将JavaBean 映射到SQL语句。它用Java bean 内省机制来将“道具bean(bean properties)”映射为相应的数据库语句占位符,而且它可以将ResultSet后的结果构造为bean.它还可以通过数据库生成主键,自动加载相关的对象、实现缓存和lazy loading.这样,iBATIS 就除去了许多执行SQL语句带来的苦差。通过编辑XML描述文档和调用少量的iBATIS的API,代替了写大量的JDBC底层代码。

使用持久层框架

当然,iBATIS不能实现高层开发和维护SQL语句,而且缺乏可移植性。为了避免这类问题,你需要用到持久层框架。持久层框架可以将对象域映射到数据库中。它提供了创建,查找,删除对象的API函数。当程序要控制对象时它可以自动的加载相应的对象,还可以在事务处理结束时自动更新数据库。持久层框架通过对象/关系映射机制可以自动的生成SQL语句,对象/关系映射机制用XML文档定义了怎样将类映射为表,怎样将数据映射为列(column)和关系是怎样被映射为外键与连接表的。

在持久层构架上EJB也有它的短处:实体bean.EJB2的实体bean有很多的不足,而且开发和测试它会变得非常的枯燥。最后,很少用EJB2的实体bean了。在EJB3中会说明那些问题。

两种最有流行的轻量级持久层构架是JDO和Hibernate,前者是Sun的标准框架,后者是开源工程。两种框架都可以为POJO类提供持久层事务处理。你可以用POJO类来开发和测试你的业务逻辑,而不用担心持久层的问题,这个时候它会将类映射到数据库中的schema.另外,他们两个都可以在服务器程序外部或者内部,这样可以进一步降低开发难度。用Hibernate和JDO来进行开发比用老的EJB2的实体bean要舒服的多。

除了要决定怎样访问数据库外,还要决定如何处理数据库的并行处理问题。下面来看一下,为什么并行处理问题那么重要,同时看一下可实现的选项

决策4:处理数据库事务处理的并行问题

差不多所有的企业应用程序都需要多用户和多个后台进程并行的更新数据库。2个数据库 处理事务同时访问同时访问同一个数据是很正常的,但是这种情况很可能引起数据库中的数据不一致或者引起应用程序的不正常。由于大部分的应用程序都需要处理多个处理事务并行访问同一个数据,则它可以影响到业务和持久层的设计。

无论你是使用EJB还是轻量级构架,你的程序必须可以并行访问共享数据。EJB2要求使用供应商提供的特殊扩充接口来实现并行,然而与此不同的是,JDO和Hibernate可以直接支持大部分并行机制。更重要的是,使用JDO和Hibernate不仅只配置简单,而且只需要少量的代码就可以实现了。

在这样主要介绍几种“并行更新数据库处理事务”的选项的概要,这些事务处理和用户的输入无关。下一章,我主要介绍一下如何在应用程序级长时间的并行更新数据库处理事务,这种处理事务会与用户输入有关,而且是由一系列的数据库事务处理组成的。

独立数据库事务

有时候对共享数据的并行访问可以简单的依靠数据库本身来实现,数据库可以设置为执行孤立的数据――这只是对数据库而言。如果你对这种概念不熟悉也不要担心,你只要记住:如果应用程序

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号