Java数据访问对象(DAO)编程模入门

Java数据访问对象(DAO)编程模入门

ID:36470419

大小:59.73 KB

页数:10页

时间:2019-05-11

Java数据访问对象(DAO)编程模入门_第1页
Java数据访问对象(DAO)编程模入门_第2页
Java数据访问对象(DAO)编程模入门_第3页
Java数据访问对象(DAO)编程模入门_第4页
Java数据访问对象(DAO)编程模入门_第5页
资源描述:

《Java数据访问对象(DAO)编程模入门》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、J2EE开发人员使用数据访问对象(DAO)设计模式把底层的数据访问逻辑和高层的商务逻辑分开。实现DAO模式能够更加专注于编写数据访问代码。这篇文章中,Java开发人员SeanC.Sullivan从三个方面讨论DAO编程的结构特征:事务划分,异常处理,日志记录。  在最近的18个月,我和一个优秀的软件开发团队一起工作,开发定制基于WEB的供应链管理应用程序.我们的应用程序访问广泛的持久层数据,包括出货状态,供应链制度,库存,货物发运,项目管理数据,和用户属性等.我们使用JDBCAPI连接我们公司的各种数据库平台

2、,并且在整个应用程序中应用了DAO设计模式.  通过在整个应用程序中应用数据访问对象(DAO)设计模式使我们能够把底层的数据访问逻辑和上层的商务逻辑分开.我们为每个数据源创建了提供CRUD(创建,读取,更新,删除)操作的DAO类.  在本文中,我将向你介绍DAO的实现策略以及创建更好的DAO类的技术.我会明确的介绍日志记录,异常处理,和事务划分三项技术.你将学在你的DAO类中怎样把这三种技术结合在一起.这篇文章假设你熟悉JDBCAPI,SQL和关系性数据库编程.  我们先来回顾一下DAO设计模式和数据访问对象

3、.  DAO基础  DAO模式是标准的J2EE设计模式之一.开发人员使用这个模式把底层的数据访问操作和上层的商务逻辑分开.一个典型的DAO实现有下列几个组件:  1.一个DAO工厂类;  2.一个DAO接口;  3.一个实现DAO接口的具体类;  4.数据传递对象(有些时候叫做值对象).  具体的DAO类包含了从特定的数据源访问数据的逻辑。在下面的这段中你将学到设计和实现数据访问对象的技术。  事务划分:  关于DAO要记住的一件重要事情是它们是事务性对象。每个被DAO执行的操作(象创建,更新、或删除数据)都

4、是和事务相关联的。同样的,事务划分(transactiondemarcation)的概念是特别重要的。  事务划分是在事务界定定义中的方式。J2EE规范为事务划分描述了两种模式:编程性事务(programmatic)和声明性事务(declarative)。下表是对这两种模式的拆分:声明性事务划分编程性事务划分程序员使用EJB的布署描述符声明事务属性程序员担负编写事务逻辑代码的责任。运行时环境(EJB容器)使用这些属性来自动的管理事务。应用程序通过一个API接口来控制事务。  我将把注意力集中的编程性事务划分上

5、。  象前面的介绍一样,DAOs是一些事务对象。一个典型的DAO要执行象创建、更新、和删除这的事务性操作。在设计一个DAO时,首先要问自己如下问题:  1、事务将怎样开始?  2、事务将怎样结束?  3、那个对象将承担起动一个事务的责任?  4、那个对象将承担结束一个事务的责任?  5、DAO应该承担起动和结束事务的责任?  6、应用程序需要交叉访问多个DAO吗?  7、一个事务包含一个DAO还是多个DAO?  8、一个DAO包含其它的DAO中的方法吗?  回答这些问题将有助于你为DAO对象选择最好的事务划分

6、策略。对ADO中的事务划分有两个主要的策略。一种方法是使用DAO承担事务划分的责任;另一种是延期性事务,它把事务划分到调用DAO对象的方法中。如果你选择前者,你将要在DAO类中嵌入事务代码。如果你选择后者,事务代码将被写在DAO类的外部。我们将使用简单的代码实例来更好的理解这两种方法是怎样工作的。  实例1展示了一个带有两种数据操作的DAO:创建(create)和更新(update):publicvoidcreateWarehouseProfile(WHProfileprofile);publicvoidup

7、dateWarehouseStatus(WHIdentifierid,StatusInfostatus);  实例2展示了一个简单的事务,事务划分代码是在DAO类的外部。注意:在这个例子中的调用者把多个DOA操作组合到这个事务中。tx.begin();//startthetransactiondao.createWarehouseProfile(profile);dao.updateWarehouseStatus(id1,status1);dao.updateWarehouseStatus(id2,statu

8、s2);tx.commit();//endthetransaction  这种事务事务划分策略对在一个单一事务中访问多个DAO的应用程序来说尤为重要。  你即可使用JDBCAPI也可以使用Java事务API(JTA)来实现事务的划分。JDBC事务划分比JTA事务划分简单,但是JTA提供了更好的灵活性。在下面的这段中,我们会进一步的看事务划分机制。  使用JDBC的事务划分  JDBC事务是使用Con

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。