Java DAO模式 数据层接口

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<Integer> ids) throws Exception;
	/**
	 * 根据雇员编号查询指定的雇员信息
	 * @param id 要查询的雇员编号
	 * @return 如果雇员信息存在,将数据以VO类对象的形式返回;不存在则返回null
	 * @throws Exception SQL执行异常
	 */
	public Emp findById(Integer id) throws Exception;
	/**
	 * 查询指定数据表的全部数据,并以集合的形式返回
	 * @return 如果表中有数据,则所有的数据会封装为VO类对象之后利用List集合返回<br>
	 * 如果没有数据,那么集合的长度为0(size()==0 而不是null!)
	 * @throws Exception SQL执行异常
	 */
	public List<Emp> findAll() throws Exception ;
	/**
	 * 分页进行数据的模糊查询,查询结果以集合的形式返回
	 * @param currentPage 当前所在的页
	 * @param lineSize 每页显示的数据行数
	 * @param column 要进行模糊查询的数据列
	 * @param keyWord 模糊查询的关键字
	 * @return 如果表中有数据,则所有的数据会封装为VO类对象之后利用List集合返回<br>
	 * 如果没有数据,那么集合的长度为0(size()==0 而不是null!)
	 * @throws Exception SQL执行异常
	 */
	public List<Emp> 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 ;
}

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


猜你喜欢

转载自blog.csdn.net/qq_36834445/article/details/80054202
今日推荐