zoukankan      html  css  js  c++  java
  • 人脸识别考勤系统(员工类与部门类)

    0.功能架构图


    1.UML类图

    • 员工

    • 部门


    2.员工类与部门类的设计

    2.1 员工类

    • 属性:员工的信息需要详细记录,所以设计了员工编号、名字、年龄、性别等属性。
      @Data
      @AllArgsConstructor
      @NoArgsConstructor
      public class Employee {
      
          private int empID;
          private String name;
          private String sex;
          private int age;
          private String password;
          private String role; //员工所属部门
      }
      
    • 方法:对员工进行的操作就是最基本的增删改查。
      public interface EmpMapper {
        //增加一个员工
        int addEmp(Employee employee);
      
        //删除一个员工
        int deleteEmp(int empId);
      
        //更新一个员工
        int updataEmp(Employee employee);
      
        //查询一个员工
        Employee queryEmpById(int empId);
      
        //查询全部员工
        List<Employee> queryAllEmp();
      
        //通过名字查员工
        Employee queryEmpByName(String empName);
      
      }
      

    2.2 部门类

    • 属性:部门的属性有部门的编号及部门名称,还有一个员工编号,这个属性是为了实现数据库中员工表和部门表的绑定,从而实现更多的功能(没实现)。
      @Data
      @AllArgsConstructor
      @NoArgsConstructor
      public class Department {
      
          private int deptID;
          private int empID;
          private String deptName;
      }
      
    • 方法:对部门进行的操作也是增删改查。
      public interface DeptMapper {
      
        //增加一个部门
        int addDept(Department department);
      
        //删除一个部门
        int deleteDept(int empid);
      
        //更新一个部门
        int updataDept(Department department);
      
        //查询一个部门
        Department queryDeptByName(String deptName);
        Department queryDeptById(int id);
      
        //查询全部部门
        List<Department> queryAllDept();
      
      }
      

    3.业务实现(以部门类为例 )

    3.1 Service接口

    • 提供了用户所需要的业务
    public interface DeptService {
    
        //增加一个部门
        int addDept(Department department);
    
        //删除一个部门
        int deleteDept(int id);
    
        //更新一个部门
        int updataDept(Department department);
    
        //查询一个部门
        Department queryDeptByName(String deptName);
    
        Department queryDeptById(int id);
        //查询全部部门
        List<Department> queryAllDept();
    
    }
    

    3.2 ServiceImpl类

    • 实现Service接口,ServiceImpl中会调用Mapper,然后通过调用Mapper的方法来调用.xml文件中的语句,对数据库进行操作。
    public class DeptServiceImpl implements DeptService {
    
        private DeptMapper deptMapper;
    
        public void setDeptMapper(DeptMapper deptMapper) {
            this.deptMapper=deptMapper;
        }
    
        @Override
        public int addDept(Department department) {
            return deptMapper.addDept(department);
        }
    
    
    
        @Override
        public int deleteDept(int id) {
            return deptMapper.deleteDept(id);
        }
    
        @Override
        public int updataDept(Department department) {
            return deptMapper.updataDept(department);
        }
    
        @Override
        public Department queryDeptByName(String deptName) {
            return deptMapper.queryDeptByName(deptName);
        }
    
        @Override
        public Department queryDeptById(int id) {
            return deptMapper.queryDeptById(id);
        }
    
        @Override
        public List<Department> queryAllDept() {
            return deptMapper.queryAllDept();
        }
    
    
    }
    
    

    4.前后端交互(以部门类为例)

    • 在controller中调用service来实现各种业务,然后通过model将从数据库中查询到的结果返回给前端。
    @Controller
    @RequestMapping("/fun3")
    public class DeptController {
    
        @Autowired
        @Qualifier("DeptServiceImpl")
        private DeptService deptService;
    
        //查询部门信息
        @RequestMapping("/dept_mg")
        public String list(Model model) {
        //    System.out.println("dept_mg");
            List<Department> list = deptService.queryAllDept();
            model.addAttribute("list",list);
            return "dept_mg";
        }
        //跳转到增加部门界面
        @RequestMapping("/toAddDept")
        public String toAddDept() {return "addDept";}
        //添加部门请求
        @RequestMapping("/addDept")
        public String addDept(Department dept) {
            deptService.addDept(dept);
            return "redirect:/fun/dept_mg";
        }
        //跳转到修改页面
        @RequestMapping("/toUpdate")
        public String toUpdataDept(Integer deptID,Model model) {
            Department dept=deptService.queryDeptById(deptID);
            model.addAttribute("Qdept",dept);
            return "updataDept";
        }
        //修改部门信息
        @RequestMapping("/updataDept")
        public String updataDept(Department dept) {
            deptService.updataDept(dept);
            return "redirect:/fun/dept_mg";
        }
        //删除部门
        @RequestMapping("/delDept")
        public String deleteDept(Integer deptID) {
            deptService.deleteDept(deptID);
            return "redirect:/fun/dept_mg";
        }
       // 查询部门
       @RequestMapping("/queryDept")
        public String queryDept(Integer queryDeptId,Model model) {
            Department department=deptService.queryDeptById(queryDeptId);
            List<Department> list=new ArrayList<Department>();
            list.add(department);
            if(department==null) {
                list=deptService.queryAllDept();
                model.addAttribute("error","未查到");
            }
            model.addAttribute("list",list);
            return "dept_mg";
        }
    }
    

    5.数据库读写

    • 使用了DAO模式。使用了c3p0连接池连接数据库,提高了数据库链接的性能。在.xml文件中实现对数据库的操作。

  • 相关阅读:
    在C#代码中应用Log4Net(二)典型的使用方式
    在C#代码中应用Log4Net(一)简单使用Log4Net
    Windows Azure Active Directory (2) Windows Azure AD基础
    Windows Azure Virtual Network (6) 设置Azure Virtual Machine固定公网IP (Virtual IP Address, VIP) (1)
    Windows Azure Active Directory (1) 前言
    Azure China (6) SAP 应用在华登陆 Windows Azure 公有云
    Microsoft Azure News(3) Azure新的基本实例上线 (Basic Virtual Machine)
    Microsoft Azure News(2) 在Microsoft Azure上运行SAP应用程序
    Microsoft Azure News(1) 新的数据中心Japan East, Japan West and Brazil South
    Windows Azure HandBook (2) Azure China提供的服务
  • 原文地址:https://www.cnblogs.com/w60-06/p/14342832.html
Copyright © 2011-2022 走看看