基于Spring MVC + Spring + MyBatis的人事管理系统

Posted 明金同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Spring MVC + Spring + MyBatis的人事管理系统相关的知识,希望对你有一定的参考价值。

资源下载:https://download.csdn.net/download/weixin_44893902/33163160

一、语言和环境

  1. 实现语言:JAVA语言
  2. 环境要求:IDEA/Eclipse + Tomcat + mysql
  3. 使用技术:Spring BootSSM

二、实现功能

随着公司业务的发展,需要一款在线人事管理系统,主要功能如下:

  1. 首页默认显示所有员工信息,如图1所示。
  2. 鼠标悬停某行数据时,以线性过渡动画显示光棒效果,如图2所示。
  3. 用户可以单独通过选择职位进行查询,也可以单独输入名字进行模糊查询,也可以两个条件一起查询,如图3所示。
  4. 点击添加人员,跳转到添加页面。输入数据后,点击确定添加,跳转主页面并刷新数据。
  5. 用户点击删除,弹出提示框,用户点击确定后,删除选中数据并显示最新数据,如图5所示

三、数据库设计

  1. 创建数据库(cqsw)。

  2. 创建数据表(tb_emp),结构如下。

字段名说明字段类型长度备注
emp_id员工编号int主键,自增,增量为1
emp_name员工名称varchar50不能为空
emp_position员工职位varchar不能为空
emp_in_date员工入职时间Date不能为空
emp_salary员工薪资float不能为空
dept_id部门idint不能为空
  1. 创建数据表(tb_dept),结构如下。
字段名说明字段类型长度备注
dept_id部门编号int主键,自增,增量为1
dept_name部门名称varchar50不能为空
dept_address部门地址varchar不能为空

四、实现步骤

SSM版本的实现步骤如下:

  1. 创建数据库数据表,添加测试数据(至少添加4条测试数据)。
  2. 创建Web工程并创建各个包,导入工程所需的jar文件。
  3. 添加相关SSM框架支持。
  4. 配置项目所需要的各种配置文件(mybatis配置文件spring配置文件springMVC配置文件)。
  5. 创建实体类。
  6. 创建MyBatis操作数据库所需的Mapper接口及其Xml映射数据库操作语句文件。
  7. 创建业务逻辑相应的接口及其实现类,实现相应的业务,并在类中加入对DAO/Mapper的引用和注入
  8. 创建Controller控制器类,在Controller中添加对业务逻辑类的引用和注入,并配置springMVC配置文件
  9. 创建相关的操作页面,并使用CSS对页面进行美化。
  10. 实现页面的各项操作功能,并在相关地方进行验证,操作要人性化。
  11. 调试运行成功后导出相关的数据库文件并提交。

五、实现代码

1、MySQL数据库

cqsw.sql

/*
Navicat MySQL Data Transfer

Date: 2021-08-06 20:07:05
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `tb_dept`
-- ----------------------------
DROP TABLE IF EXISTS `tb_dept`;
CREATE TABLE `tb_dept` (
  `dept_id` int(11) NOT NULL AUTO_INCREMENT,
  `dept_name` varchar(50) NOT NULL,
  `dept_address` varchar(50) NOT NULL,
  PRIMARY KEY (`dept_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of tb_dept
-- ----------------------------
INSERT INTO `tb_dept` VALUES ('1', '技术部', '重庆商务职业学院');
INSERT INTO `tb_dept` VALUES ('2', '销售部', '沙坪坝');
INSERT INTO `tb_dept` VALUES ('3', '市场部', '沙坪坝');

-- ----------------------------
-- Table structure for `tb_emp`
-- ----------------------------
DROP TABLE IF EXISTS `tb_emp`;
CREATE TABLE `tb_emp` (
  `emp_id` int(11) NOT NULL AUTO_INCREMENT,
  `emp_name` varchar(50) NOT NULL,
  `emp_position` varchar(50) NOT NULL,
  `emp_in_date` varchar(100) NOT NULL,
  `emp_salary` float NOT NULL,
  `dept_id` int(11) NOT NULL,
  PRIMARY KEY (`emp_id`)
) ENGINE=InnoDB AUTO_INCREMENT=7374 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of tb_emp
-- ----------------------------
INSERT INTO `tb_emp` VALUES ('7369', '任盈盈', '职员', '1980-12-17', '800', '1');
INSERT INTO `tb_emp` VALUES ('7370', '杨逍', '销售人员', '1981-02-20', '1600', '2');
INSERT INTO `tb_emp` VALUES ('7371', '范瑶', '销售人员', '1981-02-22', '1250', '2');
INSERT INTO `tb_emp` VALUES ('7372', '任我行', '经理', '1981-04-02', '2975', '3');
INSERT INTO `tb_emp` VALUES ('7373', '卡卡西', '经理', '2021-08-06', '5000', '1');

2、项目Java代码

目录结构
cqsw_db

JAR包:

src

com.mhys.crm.controller【控制层】

Tb_empController.java
package com.mhys.crm.controller;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.mhys.crm.entity.TbEmp;
import com.mhys.crm.entity.Tb_emp_dept;
import com.mhys.crm.service.Tb_empService;
import com.sun.org.apache.xpath.internal.operations.Mod;
import com.sun.swing.internal.plaf.metal.resources.metal;

@Controller
public class Tb_empController {
	@Resource
	private Tb_empService service;
	@RequestMapping("selectAll")
	public String selectAll(Model model,Tb_emp_dept tb_emp_dept) {
		if (tb_emp_dept.getEmpName()==null) {
			tb_emp_dept.setEmpName("");
		}
		if (tb_emp_dept.getEmpPosition()==null) {
			tb_emp_dept.setEmpPosition("");
		}
		List<Tb_emp_dept> list=service.selectAll(tb_emp_dept);
		model.addAttribute("empList", list);
		return "/account";
	}
	@RequestMapping("addPage")
	public String addPage() {
		return "/addAccount";
	}
	@RequestMapping("add")
	public String add(TbEmp tbEmp) {
		int rows=service.add(tbEmp);
		return "redirect:selectAll.do";
	}
	@RequestMapping("delete")
	public String  delete(int id) {
		int row=service.delete(id);
		return "redirect:selectAll.do";
	}
}

com.mhys.crm.dao【数据库访问层】

TbDeptMapper.java
package com.mhys.crm.dao;

import com.mhys.crm.entity.TbDept;
import java.util.List;

public interface TbDeptMapper {
    int deleteByPrimaryKey(Integer deptId);

    int insert(TbDept record);

    TbDept selectByPrimaryKey(Integer deptId);

    List<TbDept> selectAll();

    int updateByPrimaryKey(TbDept record);
}
TbEmpMapper.java
package com.mhys.crm.dao;

import com.mhys.crm.entity.TbEmp;
import com.mhys.crm.entity.Tb_emp_dept;

import java.util.List;

public interface TbEmpMapper {
    int deleteByPrimaryKey(Integer empId);

    int insert(TbEmp record);

    TbEmp selectByPrimaryKey(Integer empId);

    List<TbEmp> selectAll();

    int updateByPrimaryKey(TbEmp record);
    
    //多表连查
    List<Tb_emp_dept> selectEmp();
    //模糊查询
    List<Tb_emp_dept> selectEmpLike(Tb_emp_dept tb_emp_dept);
    
}
TbDeptMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.mhys.crm.dao.TbDeptMapper" >
  <resultMap id="BaseResultMap" type="com.mhys.crm.entity.TbDept" >
    <id column="dept_id" property="deptId" jdbcType="INTEGER" />
    <result column="dept_name" property="deptName" jdbcType="VARCHAR" />
    <result column="dept_address" property="deptAddress" jdbcType="VARCHAR" />
  </resultMap>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
    delete from tb_dept
    where dept_id = #{deptId,jdbcType=INTEGER}
  </delete>
  <insert id="insert" parameterType="com.mhys.crm.entity.TbDept" >
    insert into tb_dept (dept_id, dept_name, dept_address
      )
    values (#{deptId,jdbcType=INTEGER}, #{deptName,jdbcType=VARCHAR}, #{deptAddress,jdbcType=VARCHAR}
      )
  </insert>
  <update id="updateByPrimaryKey" parameterType="com.mhys.crm.entity.TbDept" >
    update tb_dept
    set dept_name = #{deptName,jdbcType=VARCHAR},
      dept_address = #{deptAddress,jdbcType=VARCHAR}
    where dept_id = #{deptId,jdbcType=INTEGER}
  </update>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
    select dept_id, dept_name, dept_address
    from tb_dept
    where dept_id = #{deptId,jdbcType=INTEGER}
  </select>
  <select id="selectAll" resultMap="BaseResultMap" >
    select dept_id, dept_name, dept_address
    from tb_dept
  </select>
</mapper>
TbEmpMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.mhys.crm.dao.TbEmpMapper" >
  <resultMap id="BaseResultMap" type="com.mhys.crm.entity.Tb_emp_dept" >
    <id column="emp_id" property="empId" jdbcType="INTEGER" />
    <result column="emp_name" property="empName" jdbcType="VARCHAR" />
    <result column="emp_position" property="empPosition" jdbcType="VARCHAR" />
    <result column="emp_in_date" property="empInDate" jdbcType="DATE" />
    <result column="emp_salary" property="empSalary" jdbcType="REAL" />
    <result column="dept_id" property="deptId" jdbcType="INTEGER" />
    <result column="dept_name" property="deptName" jdbcType="VARCHAR" />
    <result column="dept_address" property="deptAddress" jdbcType="VARCHAR" />
  </resultMap>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
    delete from tb_emp
    where emp_id = #{empId,jdbcType=INTEGER}
  </delete>
  <insert id="insert" parameterType="com.mhys.crm.entity.TbEmp" >
    insert into tb_emp (emp_id, emp_name, emp_position, 
      emp_in_date, emp_salary, dept_id
      )
    values (#{empId,jdbcType=INTEGER}, #{empName,jdbcType=VARCHAR}, #{empPosition,jdbcType=VARCHAR}, 
      #{empInDate,jdbcType=DATE}, #{empSalary,jdbcType=REAL}, #{deptId,jdbcType=INTEGER}
      )
  </insert>
  <update id="updateByPrimaryKey" parameterType="com.mhys.crm.entity.TbEmp" >
    update tb_emp
    set emp_name = #{empName,jdbcType=VARCHAR},
      emp_position = #{empPosition,jdbcType=VARCHAR},
      emp_in_date = #{empInDate,jdbcType=DATE},
      emp_salary = #{empSalary,jdbcType=REAL},
      dept_id = #{deptId,jdbcType=INTEGER}
    where emp_id = #{empId,jdbcType=INTEGER}
  </update>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
    select emp_id, emp_name, emp_position, emp_in_date, emp_salary, dept_id
    from tb_emp
    where emp_id = #{empId,jdbcType=INTEGER}
  </select>
  <select id="selectAll" resultMap="BaseResultMap" >
    select emp_id, emp_name, emp_position, emp_in_date, emp_salary, dept_id
    from tb_emp
  </select>
  
  <select id="selectEmp" resultMap="BaseResultMap" >
    SELECT emp_id, emp_name, emp_position, emp_in_date, emp_salary,dept_name,
     dept_address FROM tb_emp e,tb_dept d WHERE e.dept_id=d.dept_id 
  </select>
  
  
  <select id="selectEmpLike" resultMap="BaseResultMap" >
    SELECT emp_id, emp_name, emp_position, emp_in_date, emp_salary,dept_name,
     dept_address FROM tb_emp e LEFT JOIN tb_dept d on e.dept_id=d.dept_id WHERE emp_position LIKE "%"#{empPosition}"%" 
     and emp_name like "%"#{empName}"%"
 
  </select>
  
</mapper>

com.mhys.crm.entity【实体的包】

Tb_emp_dept.java
package com.mhys.crm.entity;

import java.util.Date;

public class Tb_emp_dept {
	private Integer empId;

    private String empName;

    private String empPosition;

    private Date empInDate;

    private Float empSalary;

    private Integer deptId;
    private String deptName;

    private String deptAddress;

	public Integer getEmpId() {
		return empId;
	}

	public void setEmpId(Integer empId) {
		this.empId = empId;
	}

	public String getEmpName() {
		return empName;
	}

	public void setEmpName(String empName) {
		this.empName = empName;
	}

	public String

以上是关于基于Spring MVC + Spring + MyBatis的人事管理系统的主要内容,如果未能解决你的问题,请参考以下文章

Spring+Spring mvc+Mybatis整合教程(基于Maven)

Spring : 基于注解的 Spring MVC( 上 )

基于Spring MVC + Spring + MyBatis的医院就诊挂号系统

基于Spring MVC + Spring + MyBatis的医院就诊挂号系统

基于Spring MVC + Spring + MyBatis的网上购物系统

基于Spring MVC + Spring + MyBatis的银行卡系统