- 202
- 0
- 约1.43万字
- 约 14页
- 2016-04-09 发布于江苏
- 举报
DAO设计模式(面向接口编程的思想).doc
DAO设计模式(面向接口编程的思想)
? J2EE开发人员使用数据访问对象(DAO)设计模式把底层的数据访问逻辑和高层的商务逻辑分开.实现DAO模式能够更加专注于编写数据访问代码. 我们先来回顾一下DAO设计模式和数据访问对象. DAO基础 DAO模式是标准的J2EE设计模式之一.开发人员使用这个模式把底层的数据访问操作和上层的商务逻辑分开.一个典型的DAO实现有下列几个组 件: 1.???? 一个DAO工厂类; 2.???? 一个DAO接口; 3.???? 一个实现DAO接口的具体类; 4.???? 数据传递对象(有些时候叫做值对象). 具体的DAO类包含了从特定的数据源访问数据的逻辑。在下面的这段中你将学到设计和实现数据访问对象的技术。 事务划分: 关于DAO要记住的一件重要事情是它们是事务性对象。每个被DAO执行的操作(象创建,更新、或删除数据)都是和事务相关联的。同样的,事务划分 (transaction demarcation)的概念是特别重要的。 事务划分是在事务界定定义中的方式。J2EE规范为事务划分描述了两种模式:编程性事务(programmatic)和声明性事务 (declarative).下表是对这两种模式的拆分: 声明性事务划分???? 编程性事务划分 程序员使用EJB的布署描述符声明事务属性???? 程序员担负编写事务逻辑代码的责任。 运行时环境(EJB容器)使用这些属性来自动的管理事务。???? 应用程序通过一个API接口来控制事务。 我将把注意力集中的编程性事务划分上。 象前面的介绍一样,DAOs是一些事务对象。一个典型的DAO要执行象创建、更新、和删除这的事务性操作。在设计一个DAO时,首先要问自己如下 问题: 1、???? 事务将怎样开始? 2、???? 事务将怎样结束? 3、???? 那个对象将承担起动一个事务的责任? 4、???? 那个对象将承担结束一个事务的责任? 5、???? DAO应该承担起动和结束事务的责任? 6、???? 应用程序需要交叉访问多个DAO吗? 7、???? 一个事务包含一个DAO还是多个DAO? 8、???? 一个DAO包含其它的DAO中的方法吗? 回答这些问题将有助于你为DAO对象选择最好的事务划分策略。对ADO中的事务划分有两个主要的策略。一种方法是使用DAO承担事务划分的责任; 另一种是延期性事务,它把事务划分到调用DAO对象的方法中。如果你选择前者,你将要在DAO类中嵌入事务代码。如果你选择后者,事务代码将被写在DAO 类的外部。我们将使用简单的代码实例来更好的理解这两种方法是怎样工作的。 实例1展示了一个带有两种数据操作的DAO:创建(create)和更新(update): public void createWarehouseProfile(WHProfile profile); public void updateWarehouseStatus(WHIdentifier id, StatusInfo status); 实例2展示了一个简单的事务,事务划分代码是在DAO类的外部。注意:在这个例子中的调用者把多个DOA操作组合到这个事务中。 tx.begin();???? // start the transaction dao.createWarehouseProfile(profile); dao.updateWarehouseStatus(id1, status1); dao.updateWarehouseStatus(id2, status2); mit();??? // end the transaction 这种事务事务划分策略对在一个单一事务中访问多个DAO的应用程序来说尤为重要。 你即可使用JDBC API也可以使用Java 事务API(JTA)来实现事务的划分。JDBC事务划分比JTA事务划分简单,但是JTA提供了更好的灵活性。在下面的这段中,我们会进一步的看事务划 分机制。 使用JDBC的事务划分 JDBC事务是使用Connection对象来控制的。JDBC的连接接口(java.sql.Connection)提供了两种事务模式:自动 提交和手动提交。Java.sql.Connection为控制事务提供了下列方法: .public void setAutoCommit(Boolean) .public Boolean getAutoCommit() .public void commit() .public void rollback() 实例3展示怎样使用JDBC API来划分事务: import java.sql.*; import
您可能关注的文档
- 2014年红河州公务员考试全真解析三.doc
- 2014年红河州公务员考试全真解析十三.doc
- 2014年萧山区九年级教学质量检测科学卷 试题卷.doc
- 2014年高二地理模拟学考各地试题 之2015年广东省普通高中学业水平模拟考试地理试卷.doc
- 2014年高考英语总复习考点课件:Book 8 板块十六 Modules 6 The Tang Poems(外研版).ppt
- 2014广西公需科目-信息技术与信息安全-参考.doc
- 2014版合约.doc
- 2014甘肃省万名考试公共基础预测.doc
- 2014综合基础知识练习题.doc
- 2015中国大学最慷慨校友排行榜.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 《专业工程管理与实务》.pdf VIP
- 中国血栓性疾病防治指南(2025版).docx VIP
- 施工质量日志-.xls VIP
- 2025年国家公务员全国总工会面试题及答案.docx VIP
- 合肥市普通高中六校联盟2025-2026学年高三第一次语文教学质量监测+答案.docx VIP
- 局部晚期食管癌患者新辅助免疫治疗与常规新辅助治疗的比较:系统评价和meta分析.pdf
- 2025以骑手为代表的新就业群体研究报告:职业技能与跑单时长对收入的共同作用.pdf VIP
- 年产一亿片别嘌呤醇的车间工艺设计.doc VIP
- 商务型(带电梯、地下室、效果图)三层别墅设计图.pdf VIP
- 2026年详版个人信用报告征信报告最新Word可编辑模版样板doc文件.docx
原创力文档

文档评论(0)