DAO设计模式

DAO(数据访问对象)模式是用于数据操作的数据层,常用于Java Web开发。它包括DatabaseConnection、VO、DAO接口、实现类、代理类和工厂类。DAO接口定义了原子性操作,如增删改查,而实现类处理具体数据库操作,代理类负责数据库连接的打开和关闭。工厂类用于获取DAO实例。在实践中,DAO的命名规范和方法命名规则应遵循一定的标准。
摘要由CSDN通过智能技术生成
一、什么是DAO

DAO(Data Access Object,数据访问对象)的主要功能是数据操作,在程序的标准开发架构中属于数据层的操作。程序的标准开发架构如下图所示。


     其中客户层、显示层、业务层和数据层分别介绍如下。  
     1、客户层:因为现在都采用B/S开发架构,所以一般客户都使用浏览器进行访问,当然也可以使用其他程序访问。  
     2、显示层:使用JSP/Servlet进行页面效果的显示。  
     3、业务层(Business Object,业务对象):会将多个原子性的DAO操作进行组合,组合成一个完整的业务逻辑。  
     4、数据层(DAO):提供多个原子性的DAO操作,如增加、修改、删除等,都属于原子性的操作。

二、DAO的组成

       在整个DAO中实际上是以接口为操作标准,即客户端依靠DAO实现的接口进行操作,而服务端要将接口进行具体的实现。DAO由以下几个部分组成。  
       DatabaseConnection:专门负责数据库的打开与关闭操作的类。  
       VO:主要由属性、setter、getter方法组成,VO类中的属性与表中的字段相对应,每一个VO类的对象都表示表中的每一条记录。       
       DAO:主要定义操作的接口,定义一系列数据库的原子性操作标准,如增加、修改、删除、按ID查询等。
       Impl:DAO接口的真实实现类,完成具体的数据库操作,但是不负责数据库的打开和关闭。  
       Proxy:代理实现类,主要完成数据库的打开和关闭,并且调用真实实现类对象的操作。  
       Factory:工厂类,通过工厂类取得一个DAO的实例化对象。

三、DAO包的命名规范

       一个好的程序必须有严格的命名要求,在使用DAO定义操作时一定要注意包的命名是很严格的。
数据库连接:xxx.dbc.DatabaseConnection。  
      DAO接口:xxx.dao.IXxxDAO。  
      DAO接口真实实现类:xxx.dao.impl.XxxDAOImpl。  
      DAO接口代理实现类:xxx.dao.proxy.XxxDAOProxy。
      VO类:xxx.vo.Xxx,VO的命名要与表的命名一致。  
      工厂类:xxx.factory.DAOFactory。


四、DAO模式示例

数据库创建脚本:

/*======================= 删除数据库 =======================*/ 
DROP DATABASE IF EXISTS mldn ; 
/*======================= 创建数据库 =======================*/ 
CREATE DATABASE mldn ; 
/*======================= 使用数据库 =======================*/ 
USE mldn ; 
/*======================= 删除数据表=======================*/ 
DROP TABLE IF EXISTS emp ; 
/*======================= 创建数据表 =======================*/ 
CREATE TABLE emp( 
empno INT(4) PRIMARY KEY, 
ename VARCHAR(10), 
job VARCHAR(9), 
hiredate DATE, 
sal FLOAT(7,2)
) ;
1、首先定义VO类,VO类的名称与表的名称一致,但是要注意类的命名规范——单词的开头首字母大写。本程序只是一个简单的VO类,包含了属性、getter、setter方法。特别要注意的是,其中表示日期时使用的是java.util.Date类。

package cn.mldn.l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值