• 首页
  • 栏目
  • CRM
  • 基于Spring MVC + Spring + MyBatis的【外包人力资源管理系统】

基于Spring MVC + Spring + MyBatis的【外包人力资源管理系统】

  • 2021-11-20
  • Admin

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

练习点设计:模糊查询、删除、新增

一、语言和环境

  1. 实现语言:JAVA语言。
  2. 环境要求:MyEclipse/Eclipse + Tomcat + MySql。
  3. 使用技术:Jsp+Servlet+JavaBeanSpringMVC + Spring + Mybatis

二、实现功能

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

  1. 首页默认显示所有开发人员信息,如图所示。
    图1 首页显示所有信息

2.鼠标悬停某行数据时,以线性过渡动画显示光棒效果,如图所示。
图2 鼠标悬停效果
3.用户选择级别,则根据级别查询,显示查询结果,如图所示。
图3 查询结果
4.用户选择工作年限,则根据工作年限查询,显示查询结果,如图所示
图4 查询结果
5.用户选择两个选项,根据两个选项查询,显示查询结果,如图所示
图5 查询结果
6.用户两个选项为空,默认为全查,显示查询结果,如图所示
图6 查询结果
7.用户点击删除,弹出提示框,用户点击确定后,删除选中数据并显示最新数据,如图所示。

图7 确认删除提示窗口
图8 数据删除后显示最新数据
8.用户在页面下方填写表单信息,点击“确定添加”按钮,增加课程信息数据到数据库, 且页面跳转到列表页面展示最新数据,如图9所示。添加课程之前,需要对姓名进行非空验证,如图10所示
图9 增加数据
图10 非空验证

三、数据库设计

1.创建数据库(os_db)。
2.创建数据表(os_db),结构如下。

字段名说明字段类型长度备注
id编号int主键,自增,增量为1
name书籍名称varchar50不能为空
author作者varchar10不能为空
publish_date出版日期date不能为空
press出版社varchar50不能为空

四、推荐实现步骤

SSM版本的实现步骤如下:
(1)创建数据库和数据表,添加测试数据(至少添加5条测试数据)。
(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数据库

os_db.sql
在这里插入图片描述

/*
 Date: 06/08/2021 19:33:22
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for tb_dever
-- ----------------------------
DROP TABLE IF EXISTS `tb_dever`;
CREATE TABLE `tb_dever`  (
  `dev_id` int(11) NOT NULL AUTO_INCREMENT,
  `dev_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `dev_level` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `dev_work_year` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `dev_in_year` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`dev_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of tb_dever
-- ----------------------------
INSERT INTO `tb_dever` VALUES (1, '张三', '高级', '40', '2021-08-02');
INSERT INTO `tb_dever` VALUES (2, '李四', '高级', '25', '2021-07-28');
INSERT INTO `tb_dever` VALUES (3, '王五', '中级', '40', '2020-11-13');
INSERT INTO `tb_dever` VALUES (4, '李梅', '高级', '35', '2021-05-12');
INSERT INTO `tb_dever` VALUES (5, '杨齐', '中级', '28', '2021-07-16');

SET FOREIGN_KEY_CHECKS = 1;

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

2、项目Java代码

目录结构
os_db
在这里插入图片描述

JAR包:

在这里插入图片描述在这里插入图片描述

src

com.generator

Generator.java

package com.generator;

import java.io.IOException;
import java.io.InputStream;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

public class Generator {
	/*
	 * targetRuntime="MyBatis3Simple", 不生成Example
	 */
	public void generateMyBatis() {
		// MBG执行过程中的警告信息
		List<String> warnings = new ArrayList<String>();
		// 当生成的代码重复时,覆盖原代码
		boolean overwrite = true;
		String generatorFile = "/generator/generatorConfig.xml";
		// String generatorFile = "/generator/generatorConfigExample.xml";
		// 读取MBG配置文件
		InputStream is = Generator.class.getResourceAsStream(generatorFile);

		ConfigurationParser cp = new ConfigurationParser(warnings);
		Configuration config;
		try {
			config = cp.parseConfiguration(is);
			DefaultShellCallback callback = new DefaultShellCallback(overwrite);
			// 创建MBG
			MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
			// 执行生成代码
			myBatisGenerator.generate(null);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (XMLParserException e) {
			e.printStackTrace();
		} catch (InvalidConfigurationException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		for (String warning : warnings) {
			System.out.println(warning);
		}
	}

	public static void main(String[] args) {
		Generator generator = new Generator();
		generator.generateMyBatis();
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58

com.mhys.crm.controller

TbMemberInfoController.java

package com.mhys.crm.controller;

import java.util.List;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

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

import com.mhys.crm.entity.TbDever;
import com.mhys.crm.service.TbDeverService;

@Controller
public class TbMemberInfoController {
	@Resource
	private TbDeverService tbDeverservice;
	
	@RequestMapping("/list")
	public String getMemberList(Model model,String keyword,String devLevel) {
		
		List<TbDever> selctAll = tbDeverservice.getSelctAll(keyword,devLevel);
		model.addAttribute("selctAll", selctAll);
	    return "Dever";
	}
	@RequestMapping("/delDev")
	public String delDev(Model model,Integer id) {
		tbDeverservice.deleMember(id);
	    return "redirect:/list.do";
	}
	
	@RequestMapping("/toupdate")
	public String toadd(Model model,Integer id) {
		TbDever selByKey = tbDeverservice.selectByPrimaryKey(id);
		model.addAttribute("tbDever", selByKey);
	    return "updateDever";
	}
	
	@RequestMapping("/addDev")
	public String toaddDev(Model model,TbDever tbDever) {
		tbDeverservice.addMember(tbDever);
	    return "redirect:/list.do";
	}
	@RequestMapping("/upDev")
	public String upDev(Model model,TbDever upadtetbDever) {
		int update = tbDeverservice.updateByPrimaryKey(upadtetbDever);
		if (update>0) {
			System.out.println("淇敼鎴愬姛");
			return "redirect:/list.do";
		}else {
			System.out.println("淇敼澶辫触");
			return "forward:/toupdate.do";
		}
		
	}
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60

com.mhys.crm.dao

TbDeverMapper.java

package com.mhys.crm.dao;

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

import org.apache.ibatis.annotations.Param;

public interface TbDeverMapper {
    int deleteByPrimaryKey(Integer devId);

    int insert(TbDever record);

    TbDever selectByPrimaryKey(Integer devId);

    List<TbDever> selectAll(@Param("keyword")String name,@Param("devLevel")String devLevel);

    int updateByPrimaryKey(TbDever record);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

TbDeverMapper.xml


DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.mhys.crm.dao.TbDeverMapper" >
  <resultMap id="BaseResultMap" type="com.mhys.crm.entity.TbDever" >
    <id column="dev_id" property="devId" jdbcType="INTEGER" />
    <result column="dev_name" property="devName" jdbcType="VARCHAR" />
    <result column="dev_level" property="devLevel" jdbcType="VARCHAR" />
    <result column="dev_work_year" property="devWorkYear" jdbcType="VARCHAR" />
    <result column="dev_in_year" property="devInYear" jdbcType="VARCHAR" />
  resultMap>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
    delete from tb_dever
    where dev_id = #{devId,jdbcType=INTEGER}
  delete>
  <insert id="insert" parameterType="com.mhys.crm.entity.TbDever" >
    insert into tb_dever (dev_id, dev_name, dev_level, 
      dev_work_year, dev_in_year)
    values (#{devId,jdbcType=INTEGER}, #{devName,jdbcType=VARCHAR}, #{devLevel,jdbcType=VARCHAR}, 
      #{devWorkYear,jdbcType=VARCHAR}, #{devInYear,jdbcType=VARCHAR})
  insert>
  <update id="updateByPrimaryKey" parameterType="com.mhys.crm.entity.TbDever" >
    update tb_dever
    set dev_name = #{devName,jdbcType=VARCHAR},
      dev_level = #{devLevel,jdbcType=VARCHAR},
      dev_work_year = #{devWorkYear,jdbcType=VARCHAR},
      dev_in_year = #{devInYear,jdbcType=VARCHAR}
    where dev_id = #{devId,jdbcType=INTEGER}
  update>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
    select dev_id, dev_name, dev_level, dev_work_year, dev_in_year
    from tb_dever
    where dev_id = #{devId,jdbcType=INTEGER}
  select>
  <select id="selectAll" resultMap="BaseResultMap" >
    select dev_id, dev_name, dev_level, dev_work_year, dev_in_year
    from tb_dever
    <where>
    <if test="devLevel!=null and devLevel!=''">
    	and dev_level = #{devLevel}
    if>
    <if test="keyword!=null and keyword!=''">
    	and dev_work_year > #{keyword}
    if>
    where>
    
  select>
mapper
			

原文:https://blog.csdn.net/weixin_44893902/article/details/121441598

联系站长

QQ:769220720

Copyright © SibooSoft All right reserved 津ICP备19011444号