Java DAO模式 数据层接口

发布于:2021-09-25 10:04:52

DAO模式 层次结构图




现在已经完成了数据库的连接与关闭(数据库连接类实现)、开发VO类(实体类),接下来我们需要进行数据层的开发。


首先,要明确一点:不同层之间如果要进行访问,必须提供有接口,以定义操作标准。


对于数据层而言,它最终要交给业务层执行,所以在数据层与业务层之间应该定义一个调用数据层的操作标准,即数据层接口。






对于数据层的接口给出如下开发要求:


1. 数据层既然是进行数据操纵的,那么将其保存在dao包下


2. 不同的数据表的操作有可能使用不同的数据层开发,那么数据层接口应针对于数据表进行命名(如针对emp表,其数据层接口定义为IEmpDAO)


3. 对于整个数据层的开发严格来讲只有两类功能:


? ? 数据更新:建议操作方法以doXxx()命名,如 增加doCreat()、修改doUpdate()、删除doRemove();


? ? 数据查询:(1)查询表中数据:以findXxx()命名,如 findById()、findByName()、findAll();


????????????????? ? ?(2)统计表中数据:以getXxx()形式命名,如 getAllCount().




范例:定义IEmpDAO接口




代码不多,注释很多,但是开发过程中一定要按照以下形式写注释!


package com.fs.dao;

import java.util.List;
import java.util.Set;
import com.fs.vo.Emp;

/**
* 实现emp表的数据层的操作标准
* 这次操作标准是根据需求文档分析出业务层,进而分析数据层所需要进行的原子操作
* 最后将原子操作定义为此接口中的方法
* @author 婉阿婉
*/
public interface IEmpDAO {
/**
* 实现数据的增加操作
* @param vo 包含了要增加数据的VO对象
* @return 数据保存成功返回true,否则返回false
* @throws Exception SQL执行异常等等(严格来讲可能产生的异常都要写出来)
*/
public boolean doCreate(Emp vo) throws Exception;
/**
* 实现数据的修改操作,根据id进行全部字段数据的修改
* @param vo 包含了要修改数据的信息,一定要提供有ID内容
* @return 数据修改成功返回true,否则返回false
* @throws Exception SQL执行异常
*/
public boolean doUpdate(Emp vo) throws Exception;
/**
* 实现数据的批量删除操作
* @param ids 包含了所有要删除的数据ID 不包含有重复内容
* @return 删除成功返回true(删除的数据个数与要删除的数据个数相同),否则返回false
* @throws Exception SQL执行异常
*/
public boolean doRemoveBatch(Set ids) throws Exception;
/**
* 根据雇员编号查询指定的雇员信息
* @param id 要查询的雇员编号
* @return 如果雇员信息存在,将数据以VO类对象的形式返回;不存在则返回null
* @throws Exception SQL执行异常
*/
public Emp findById(Integer id) throws Exception;
/**
* 查询指定数据表的全部数据,并以集合的形式返回
* @return 如果表中有数据,则所有的数据会封装为VO类对象之后利用List集合返回

* 如果没有数据,那么集合的长度为0(size()==0 而不是null!)
* @throws Exception SQL执行异常
*/
public List findAll() throws Exception ;
/**
* 分页进行数据的模糊查询,查询结果以集合的形式返回
* @param currentPage 当前所在的页
* @param lineSize 每页显示的数据行数
* @param column 要进行模糊查询的数据列
* @param keyWord 模糊查询的关键字
* @return 如果表中有数据,则所有的数据会封装为VO类对象之后利用List集合返回

* 如果没有数据,那么集合的长度为0(size()==0 而不是null!)
* @throws Exception SQL执行异常
*/
public List findAllSplit(Integer currentPage,Integer lineSize,String column,String keyWord) throws Exception;
/**
* 进行模糊查询数据量的统计
* @param column 要进行模糊查询的数据列
* @param keyWord 模糊查询的关键字
* @return 返回表中的数据量,如果没有数据返回0
* @throws Exception SQL执行异常
*/
public Integer getAllCount(String column,String keyWord) throws Exception ;
}

数据层接口的目的是为了告诉业务层:在整个数据层中,能提供这些操作;而这些操作彼此间的整合就要求业务层负责处理。



相关推荐

最新更新

猜你喜欢