开博——【转】Java中DAO的实现
最近学习中总是感觉停止不前了,到达一个瓶颈,经常写到一个地方会觉得这个东西学过但有不是那么的清楚,一种似懂非懂的感觉,所以决定找地方把每天所学习的或有用的东西记录下来,今天开始这里将是我的技术库,我会与所有爱好JAVA的朋友一起学习,一起进步。今天是开博第一天,正好在复习DAO设计模式,看到一片不错的讲解,就转载过来了。
【转】Java中DAO的实现
J2EE 开发人员使用数据访问对象(Data Access Object DAO)设计模式,以便将低级别的数据访问逻辑与高级别的业务逻辑分离。实现 DAO 模式涉及比编写数据访问代码更多的内容。在本文中,Java 开发人员 Sean C. Sullivan 讨论了 DAO 编程中三个常常被忽略的方面:事务界定、异常处理和日志记录。
图 1 显示了应用程序和数据源之间的关系:
图 1. 应用程序和数据源
在整个应用程序中使用数据访问对象(DAO)使我们可以将底层数据访问逻辑与业务逻辑分离开来。我们构建了为每一个数据源提供 CRUD (创建、读取、更新、删除)操作的 DAO 类。
在本文中,我将为您介绍构建更好的 DAO 类的 DAO 实现策略和技术。更确切地说,我将讨论日志、异常处理和事务界定。您将学到如何将这三者结合到自己的 DAO 类中。本文假定您熟悉 JDBC API、SQL 和关系数据库编程。
我们将以对 DAO 设计模式和数据访问对象的概述开始。
DAO基础
DAO 模式是标准 J2EE 设计模式之一。开发人员用这种模式将底层数据访问操作与高层业务逻辑分离开。一个典型的 DAO 实现有以下组件:
一个 DAO 工厂类
一个 DAO 接口
一个实现了 DAO 接口的具体类
数据传输对象(有时称为值对象)
具体的 DAO 类包含访问特定数据源的数据的逻辑。在下面一节中您将学习设计和实现数据访问对象的技术。 事务界定
关于 DAO 要记住的重要一点是它们是事务性对象。由 DAO 所执行的每一个操作 -- 如创建、更新或者删除数据 -- 都与一个事务相关联。因此, 事务界定的概念就变得特别重要了。
事务界定是定义事务边界的方式。J2EE 规范描述了两种事务界定的模型:编程式(programmatic)和声明式(declarative)。表 1 分析了这两种模型:
表 1. 两种事务界定的模型
声明式事务界定
编程式事务界定
程序员用 EJB 部署描述符声明事务属性。
程序员负责编写事务逻辑。
运行时环境(EJB 容器)用这些属性自动管理事务。
应用程序通过一个 API 控制事务。
我们将侧重于编程式事务界定。
设计考虑
如前所述
相关文档:
package com.project.ajaxs;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Calendar;
import java.uti ......
我现在已经大四了,学的是软件专业,我必须承认我们学校的软件专业很不好,所以大部分要靠自己。
以前从来没写过博客,这次在这里开博就是想通过csdn结识更多的学习JAVA的朋友,我深知自己的JAVA功底甚浅,所以只有孜孜不倦的习,和不厌其烦的发问才能使自己强大。
最近我也从网� ......
Java Applet 是用Java 语言编写的一些小应用程序,这些程序是直接嵌入到页面中,由支持Java的浏览器(IE 或 Nescape)解释执行能够产生特殊效果的程序。它可以大大提高Web页面的交互能力和动态执行能力。包含Applet的网页被称为Java-powered页,可以称其为Java支持的网页。
当用户访问这样的网页时,Ap ......
1.[http://www.javaalmanac.com] – Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代码, 这是一个不错的去处.
2.[http://www.onjava.com] – O’Reilly的Java网站. 每周都有新文章.
3.[http://java.sun.com] – 官方的Java开发者网站 – 每周都有新文章发表.
4.[http:/ ......
一.java类
package com.java.test;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
public class JavaReadXml {
// Document可以看作是XML在内存中的一� ......