本博客根据《李兴华--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; }
本接口中方法的设计完全符合与之前的分析过程。
当前给出的业务层的操作的接口定义功能。