package com.li.springboot.controller;
import com.li.springboot.bean.Dept;
import com.li.springboot.bean.Employee;
import com.li.springboot.bean.Job;
import com.li.springboot.bean.User;
import com.li.springboot.mapper.DeptMapper;
import com.li.springboot.mapper.EmployeeMapper;
import com.li.springboot.mapper.JobMapper;
import com.li.springboot.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
* @author lt
* @version 1.0
* @date 2019/12/16 11:08 下午
*/
@Controller
public class EmployeeController {
@Autowired
DeptMapper deptMapper;
@Autowired
EmployeeMapper employeeMapper;
@Autowired
UserMapper userMapper;
@Autowired
JobMapper jobMapper;
//显示雇员信息
@GetMapping("/employees")
public String getAllEmployee(Model model){
Collection<Employee> employees = employeeMapper.getAllEmployee();
employees.forEach(item->{
Job jobById = jobMapper.getJobById(item.getJobId());
item.setJobId(jobById.getName());
Dept dep = deptMapper.getDeptById(item.getDeptId());
item.setDeptId(dep.getName());
});
model.addAttribute("employees",employees);
return "employee/list";
}
//前往添加页面
@GetMapping("/emp")
public String toAddEmp(Model model){
Collection<Dept> depts = deptMapper.getAllDept();
Collection<Job> jobs = jobMapper.getAllJob();
System.out.println(jobs);
model.addAttribute("jobs",jobs);
model.addAttribute("depts",depts);
return "employee/add";
}
//添加员工
@PostMapping("/emp/add")
public String addEmp(Employee employee){
System.out.println(employee);
employeeMapper.insertEmp(employee);
return "redirect:/employees";
}
//前往编辑页面
@GetMapping("/emp/update/{id}")
public String getUpdatePage(Model model,@PathVariable("id") String id){
Collection<Dept> depts = deptMapper.getAllDept();
Collection<Job> jobs = jobMapper.getAllJob();
Employee empById = employeeMapper.getEmpById(id);
model.addAttribute("jobs",jobs);
model.addAttribute("depts",depts);
model.addAttribute("emp",empById);
return "employee/update";
}
//前往编辑页面
@GetMapping("/emp/update1")
public String getUpdatePage1(Model model, HttpSession session){
User user = (User)session.getAttribute("userInfor");
Employee emp = employeeMapper.getEmpById(user.getEmployeeid().toString());
Collection<Dept> depts = deptMapper.getAllDept();
Collection<Job> jobs = jobMapper.getAllJob();
Employee empById = employeeMapper.getEmpById(String.valueOf(emp.getId()));
model.addAttribute("jobs",jobs);
model.addAttribute("depts",depts);
model.addAttribute("emp",empById);
return "employee/update1";
}
//保存修改后的信息
@PostMapping("/employee/update1")
public String deleteUser1(Employee employee){
employeeMapper.updateEmployById(employee);
return "redirect:/emp/update1";
}
//删除员工
@PostMapping("/emp/del/{id}")
public String deleteUser(@PathVariable("id") String id){
employeeMapper.deleteEmp(id);
return "redirect:/employees";
}
//查询员工
@PostMapping("/emp/select")
public String selectEmpByName(@RequestParam(value = "name") String name ,Integer num, Model model){
Collection<Employee> employees = employeeMapper.getEmpByName(name,num==null?0:(num-1)*15);
model.addAttribute("employees",employees);
return "employee/list";
}
//获取员工信息下拉框
@PostMapping("/getemployee")
@ResponseBody
public Object getEmployee(Model model){
List<Employee> employees = employeeMapper.getAllEmployee();
List<User> allUser = userMapper.getAllUser();
allUser.forEach(item->{
if (item.getEmployeeid() != null && !"".equals(item.getEmployeeid())){
for (int i = 0;i< employees.size();i++){
if (employees.get(i).equals(item.getEmployeeid())){
employees.remove(i);
}
}
}
});
return employees;
}
//保存修改后的信息
@PostMapping("/employee/update")
public String deleteUser(Employee employee){
employeeMapper.updateEmployById(employee);
return "redirect:/employees";
}
}
SSM+MySQL小型企业人事管理系统是一个典型的Java Web项目,它结合了Spring、SpringMVC和MyBatis三个框架,以及MySQL数据库,用于实现高效、稳定的人事管理功能。以下是对这个系统及其关键技术的详细说明: **Spring框架**: 1. **依赖注入(Dependency Injection, DI)**:Spring通过DI来管理对象的生命周期和对象之间的关系,使得代码更具有松耦合性。 2. **AOP(面向切面编程)**:Spring的AOP模块允许我们在不修改源代码的情况下,对业务逻辑进行增强,如日志记录、事务管理等。 3. **容器**:Spring作为容器,可以创建和管理Bean,提供初始化、配置、查找和装配对象的能力。 **SpringMVC框架**: 1. **模型-视图-控制器(Model-View-Controller, MVC)**:SpringMVC是Spring框架的一部分,用于处理Web请求。它将业务逻辑、数据和用户界面分离,提高代码可维护性。 2. **DispatcherServlet**:作为前端控制器,接收HTTP请求,然后分发到相应的处理器。 3. **ModelAndView**:用于在控制器和视图之间传递数据,同时包含视图名。 4. **视图解析器**:根据视图名解析出实际的视图,如JSP、FreeMarker等。 **MyBatis框架**: 1. **SQL映射**:MyBatis允许开发者编写动态SQL,将SQL语句与Java代码分离,提高代码可读性。 2. **Mapper接口**:通过接口定义数据库操作,实现DAO层的无代码生成。 3. **MyBatis-Spring整合**:两者结合,使MyBatis的SqlSession管理变得更加简单,避免手动关闭Session,提高开发效率。 **MySQL数据库**: 1. **关系型数据库**:MySQL是一个广泛使用的开源关系型数据库,支持ACID事务,适用于处理大量数据。 2. **表设计**:在人事管理系统中,可能包含员工信息、部门信息、职位信息等表,通过外键关联保持数据一致性。 3. **索引优化**:为了提高查询性能,可能会对常用查询字段创建索引。 **系统功能**: 1. **员工管理**:包括员工信息录入、查询、修改、删除等操作。 2. **部门管理**:添加、删除和调整部门结构,分配员工至相应部门。 3. **职位管理**:设置不同职位,关联至员工,便于角色权限划分。 4. **考勤管理**:记录员工的签到、请假、加班等信息。 5. **薪酬福利**:处理工资计算、社保公积金等财务数据。 6. **权限控制**:基于角色的权限分配,确保信息安全。 **技术栈其他组件**: 1. **Maven**:项目构建工具,管理项目依赖关系。 2. **HTML/CSS/JavaScript**:构建用户界面,实现前后端交互。 3. **JSP/Servlet**:用于动态生成网页,处理HTTP请求。 4. **Eclipse/IntelliJ IDEA**:常用的Java开发集成环境。 5. **Tomcat**:应用服务器,运行Java Web应用程序。 **开发流程**: 1. **需求分析**:明确系统功能,制定需求文档。 2. **数据库设计**:根据需求设计数据表结构,编写SQL脚本。 3. **架构设计**:选择合适的技术栈,规划系统架构。 4. **编码实现**:按照MVC模式编写代码,实现各模块功能。 5. **测试**:进行单元测试、集成测试,确保系统稳定。 6. **部署**:将项目打包成WAR文件,部署到服务器上。 这个基于SSM+MySQL的小型企业人事管理系统源码数据库是一个全面的Java Web解决方案,它涵盖了后端开发的多个层面,对于学习和理解Java Web开发有着重要的参考价值。
- 1
- 2
- 3
- 4
- 5
- #完美解决问题
- #运行顺畅
- #内容详尽
- #全网独家
- #注释完整
- 粉丝: 37
- 资源: 5321
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【项目参考】MATLAB的CNN卷积神经网络疲劳检测(第28期).zip
- 【项目参考】MATLAB的DWT数字水印设计(第28期).zip
- 【项目参考】MATLAB的DWT数字音频水印系统(第28期).zip
- 【项目参考】MATLAB的PCB板缺陷检测(第28期).zip
- 【项目参考】MATLAB的PCB版字符识别(第28期).zip
- 【项目参考】MATLAB的病虫害检测系统(第28期).zip
- 【项目参考】MATLAB的SVM方法的水果识别分类(第28期).zip
- 【项目参考】MATLAB的答题纸答题卡识别(第28期).zip
- 【项目参考】MATLAB的路牌交通牌照识别(第28期).zip
- python 一些学习用例
- 【项目参考】MATLAB的车道线标定(第28期).zip
- 【项目参考】MATLAB的人脸+指纹融合系统(第28期).zip
- 【项目参考】MATLAB的人脸识别设计(第28期).zip
- MySQL 62 道面试题及答案.zip
- 【项目参考】MATLAB的人脸门禁预警(第28期).zip
- 【项目参考】MATLAB的手写字符识别(第28期).zip