JAVA入门:DAO设计模式

什么是DAO

DAO是Data Access Object数据访问接口,数据访问:故名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。

DAO的功能:

1. DAO用来封装Data Source的……就比如,Connection conn = DAOFacotry.createConnection()……

就可以把Driver. URL. username, passpword这一些放在DAO中以后要更改数据库的类型。比如要把MSSQL换成Oracle的话……只需要更改DAOFacory里面的getConnection()里面的Driver.URL.之类的……

2. DAO也是把对数据库的操作(比如最基本的CRUD操作)全部封装在里面……

比如说你要你要插入一个新的用户……那么。在DAO中我们只需要提供一个insertUser(User user)这一个方法就可以了……具体的操作是在DAO中实现的……

那么对于要调用DAO的时候。我们只要知道insertUser(User)是用来插入一个新的用户……而不需要知道是如何实现的。

一般 DAO是与Abstract Factory模式一起来用的……

Factory来建立数据库和定位具体的DAO(比如说是UserDao..CustomerDao..)..一般将getConnection设置为static..也可以把HibernateSessionFactory这一个公共类放在这一AbstractFactory类中去...

public class DAOFactory {
private static final SessionFactory sessionFacotory;
// 定义一个TrheadLocal .
static Session currentSession().....
public UserDao getUserDAO() { return new UserDaoImpl(sesssion); }
pulbic OtherDao getOtherDAO() { return new OtherDaoImpl(session); }
......
}
public interface UserDao {
public insertUser(FormBean)
public updateUser(FormBean);
}

然后就实现DAO的接口: (Struts的FormBean...VO来的..)

public class UserDaoImpl implements UserDao {
private Session session;
public UserDaoImpl(Session session){
this.session = session;
}...
public insertUser(FormBean) {
..//..
session.save(UserPO);
..//..
return FormBean;
}
public FormBean updateUser(FormBean) {
..//..
session.update(UserPO);
..//..
return FormBean;
}
}

最后定义你的PO:

public class UserPO {
String firstname, lastname, password..........
}

时间: 2024-08-03 00:43:16

JAVA入门:DAO设计模式的相关文章

java入门学习指导之最佳方向(上)

我们学习Java大概有3个方向,第一,桌面系统,包括C/S结构:第二,J2ME,面向无限领域,很有潜力的家伙,看看中国的手机用户就知道了.第三,面向企业应用.计算的平台,J2EE. 初次涉及Java领域,感觉到Java入门是好像没有C,C++入门快,工具也没有什么TurboC,VisualC++好用(自己的破机器实在陪不起JBuilder,贪婪的家伙,以后一定要收拾她).什么JAVA_HOME,CLASSPATH,虚拟机等概念都是初次基础,旁边的人都很少用Java的.感觉Java就是做Apple

MySQL数据库学习笔记(十一)----DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)

[正文] 一.DAO模式简介 DAO即Data Access Object,数据访问接口.数据访问:故名思义就是与数据库打交道.夹在业务逻辑与数据库资源中间. DAO模式实际上是两个模式的组合,即Data Accessor (数据访问者)模式和 Active Domain Object(领域对象)模式.Data Accessor 模式实现了数据访问和业务逻辑的分离:Active Domain Object 模式实现了业务数据的对象化封装. 需要注意的是,DAO设计模式是Java EE中的设计模式

接口继承-关于java中Dao模块接口问题,请教一下原理

问题描述 关于java中Dao模块接口问题,请教一下原理 BaseDao.java public interface BaseDao {} BaseDaoImpl.java public abstract class BaseDaoImpl implements BaseDao {} UserService.java public interface UserService extends BaseDao{} UserServiceImpl.java public class UserServi

Zookeeper Api(java)入门与应用

[本文转载于Zookeeper Api(java)入门与应用] 如何使用 Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化.通过监控这些数据状态的变化,从而可以达到基于数据的集群管理,后面将会详细介绍 Zookeeper 能够解决的一些典型问题,这里先介绍一下,Zookeeper 的操作接口和简单使

DAO设计模式---实现一个简单的注册(上)

DAO设计模式是属于Java Web中对数据层的具体操作,使用DAO设计模式可以简化大量代码的编写和增加程序的可移植性,可以很方便在日后对代码的修改. 如果在JSP中使用JDBC操作数据库,那样在JSP中就会嵌入大量的Java代码,显示和逻辑功能的代码混在一起,可读性差,难以维护. 使用DAO设计模式,JSP用来只显示数据,无需关注数据如何获取,从何而来. DAO设计模式主要有这几个部分: 1.DAO接口:定义所有用户需要的操作抽象方法,如查找.删除.修改.添加等.不过这些抽象方法需要具体的实现

Java入门:理解构造器 (转)

Java入门:理解构造器 译者:东方一蛇   理解构造器--构造器和方法的区别   摘要   要学习Java,你必须理解构造器.因为构造器可以提供许多特殊的方法,这个对于初学者经常混淆.但是,构造器和方法又有很多重要的区别.   原作者:Robert Nielsen 原站:www.javaworld.com   我们说构造器是一种方法,就象讲澳大利亚的鸭嘴兽是一种哺育动物.(按:老外喜欢打比喻,我也就照着翻译).要理解鸭嘴兽,那么先必须理解它和其他哺育动物的区别.同样地,要理解构造器,那么就要了

javaBean高级内容:DAO设计模式

既然已经学习了javabean了,就应该了解dao模式了.也就步入了mvc高级开发的轨道了.关于dao我们一起来看一下它是个什么东西.看一下面向企业开发的模式的意义. dao设计模式简介 dao全称是data access object,数据库访问对象,主要的功能就是用于进行数据操作的,在程序的标准开发架构中属于数据层的操作 企业分层架构 客户层:因为现在都采用了B/S开发架构,所以一般都使用浏览器进行访问. 显示层:使用JSP/Servlet进行页面效果的显示 业务层:(Business Ob

从Java类库看设计模式(5)

有了前面诸多设计模式的基础,这儿可以提出一个比较特殊的模式MVC.MVC并不属于GOF 的23个设计模式之列,但是它在GOF的书中作为一个重要的例子被提出来,并给予了很高的评 价.一般的来讲,我们认为GOF的23个模式是一些中级的模式,在它下面还可以抽象出一些更 为一般的低层的模式,在其上也可以通过组合来得到一些高级的模式.MVC就可以看作是一些 模式进行组合之后的结果(实际上,MVC的出现要早于设计模式的提出,这而只是对它在设计 模式的基础上进行在分析).如果没有前面的基础,理解MVC或许会有

java入门程序 char初始值 和例题答案不一样

问题描述 java入门程序 char初始值 和例题答案不一样 public class Ex1 { int a; char b; public Ex1(){ System.out.println(a); System.out.print("["+b+"]"); System.out.print("www"); } public static void main(String[] args){ new Ex1(); /*我只是想把初始值试出来嘛,为

java入门 错误: 找不到符号

问题描述 java入门 错误: 找不到符号 E:JspStudy>set path=C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;E:JspStudyjdkin E:JspStudy>cd .. E:>javac Q2.java E:>attrib Q2*A E:Q2.javaA E:Q2.class E:>javac -cp .;.. JspStudy/Q1.javaJspStudyQ1.java:4: 错误: 找不到符