Java DAO模式 业务层接口

本博客根据《李兴华--java8编程开发入门》视频整理而来。

数据层写完了,但数据层并不能真正给用户使用,所以开发业务层。业务层是真正留给外部调用的,外部可能是控制层或者直接调用。本次操作都是采用直接调用的形式进行。

业务层也是由不同的层进行调用,所以业务层开发的首要任务就是定义业务层的操作标准。

开发业务层标准——IEmpService

业务层也可以成为Service层,由于描述的是Emp表的操作,所以名称定义为IEmpService,并且保存在service子包下。但是对于业务层方法的定义没有强制标准,但是建议写上有意义的统一名称:update(),delete().....

【注意】所有业务层的操作都用基本类型,数据层用包装类。因为在分布式开发之中,有时候包装类可能不支持。

范例:定义IEmpService操作标准

package com.fs.service;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.fs.vo.Emp;
/**
 * 定义Emp表 业务层的执行标准,此类一定要负责数据库的打开和关闭操作
 * 此类可以通过DAOFactory类取得IEmpDAO的接口对象
 * @author 婉阿婉
 */
public interface IEmpService {
	/**
	 * 实现雇员数据的增加操作,本次操作要调用IEmpDAO接口的如下方法<br>
	 * <li>需要调用IEmpDAO.findById()方法,判断要增加数据的id是否已经存在
	 * <li>如果要增加数据的id不存在则调用IEmpDAO.doCreate()方法,返回操作的结果
	 * @param vo 包含了要增加数据的VO对象
	 * @return 如果增加数据的ID重复货哦这保存失败返回false,否则返回true
	 * @throws Exception SQL执行异常
	 */
	public boolean insert(Emp vo) throws Exception;

	/**
	 * 实现雇员数据的修改操作,本次要调用IEmpDAO.doUpdate()方法,本次修改属于全部内容修改
	 * @param vo 包含了要修改的VO对象
	 * @return 修改成功返回true,否则返回false
	 * @throws Exception SQL执行异常
	 */
	public boolean update(Emp vo) throws Exception;

	/**
	 * 执行雇员数据的删除操作,可以删除多个雇员信息,调用IEmpDAO.doRemoveBatch()方法
	 * @param ids 包含了所有要删除数据的集合,其中没有重复数据
	 * @return 删除成功(要删除条数==删除条数)返回true,否则返回false
	 * @throws Exception SQL执行异常
	 */
	public boolean delete(Set<Integer> ids) throws Exception;

	/**
	 * 根据雇员编号查找雇员的完整信息,调用IEmpDAO.findById()方法
	 * @param ids 要查找的雇员编号
	 * @return 找到了相应的雇员信息则以VO对象返回,否则返回null
	 * @throws Exception SQL执行异常
	 */
	public Emp get(int ids) throws Exception;

	/**
	 * 查询全部雇员信息,调用IEmpDAO.findAll()方法
	 * @return 查询结果以List集合的形式返回,如果没有数据则集合长度为0
	 * @throws Exception SQL执行异常
	 */
	public List<Emp> list() throws Exception;

	/**
	 * 实现数据的模糊查询与数据统计,要调用IEmpDAO接口的两个方法:<br>
	 * <li>调用IEmpDAO.findAllSplit()方法,查询出所有的表数据,返回List<Emp>;
	 * <li>调用IEmpDAO.getAllCount()方法,查询所有的数据量,返回的Integer;
	 * @param currentPage 当前所在页
	 * @param lineSize 每页显示的记录数
	 * @param column 模糊查询的数据列
	 * @param keyWord 模糊查询的关键字
	 * @return 本方法由于需要返回多种数据类型,所以使用Map集合返回,由于类型不用一,所以所有value的类型设为Object<br>
	 * <li> key = allEmps,value = IEmpDAO.findAllSplit();返回结果:List<Emp>;
	 * <li> key = empCount,value = IempDAO.getAllCount();返回结果:Integer;
	 * @throws Exception
	 */
	public Map<String, Object> list(int currentPage, int lineSize, String column, String keyWord) throws Exception;
}

本接口中方法的设计完全符合与之前的分析过程。

当前给出的业务层的操作的接口定义功能。




猜你喜欢

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