Java 大作业 人力资源管理系统 springboot mysql

一、本课程设计的目的

1、 熟练掌握用Java实现的面向对象编程的基本原理 。
2、 熟练掌握Java EE项目集成开发环境的配置和使用。
3、 熟练掌握实现MVC模式开发的Java EE项目开发技术:JSP+Servlet+JavaBean。能完成一个完整的Java Web系统的开发调试全过程。

二、本课程设计的具体要求

1、 通过选题完成一个Java web项目的设计、编码、调试,了解程序设计过程,锻炼实际应用能力,要求至少使用JSP+Servlet+JavaBean进行开发。
2、 若自学使用了Java EE的框架,例如Spring Boot,Spring MVC,Struts2,Mybatis,Hibernate,Spring等,可以获得更高分。
3、项目完成后要提交程序源代码和本课程设计报告,并参加答辩。

三、本课程设计具体内容

  1. 概述
    本次课程设计的选题为人力资源管理系统,随着公司的发展每家公司都必须要对其公司的员工信息进行管理。正因如此每家公司都需要一个人力资源管理系统来对员工的信息进行科学管理;同时也需要一个系统能够记录员工们的出勤表现,更好地完善公司的奖惩制度。实现对企业的科学管理,也少不了公司对各部门、各个岗位和各个员工设立一个统一的标准,如薪资标准等;所以人力资源管理系统成了科学管理企业必不可少的所需物,该课程设计的目的就是帮助我们了解人力资源管理系统所需的功能和对其数据信息的管理和操作。
  2. 程序概要设计
    该项目后端是通过SpringBoot快速起步Spring项目,采用Mybatis框架对数据库进行操作;前端界面主要是通过JSP+HTML模式实现的。
    后端代码中主要有controller层、service层、dao层和utils层。Controller层主要作用为实现前后端的数据交互,因为在设计的过程中发现将controller层和service层合并可以减少大量的接口,从而减少对接口的管理工作,减轻自身的工作量,所以该层还具有处理业务逻辑操作;Dao层主要作用为定义实体类和设置对数据库数据进行的操作;utils层主要是因为业务需要实现了一个打卡功能的业务逻辑。在整体系统设计框架中主要是采用了MVC架构,使用该架构主要是因为其可以简化后期对项目的修改、扩展等维护操作、使项目的某一部分变得可以重复利用和使项目的结构更加直观。
    视图(View):主要为前端界面显示所需数据和交互;
    控制器(Controller):可以理解为一个分发器,用来决定对于视图发来的请求,需要用哪一个模型来处理,以及处理完后需要跳回到哪一个视图。即用来连接视图和模型。通用控制器对客户端的请求数据进行封装,然后调用某一个模型来处理此请求,最后再转发请求(或重定向)到视图(或另一个控制器)。
    (3)模型(Model):模型持有所有的数据、状态和程序逻辑。模型接受视图数据的请求,并返回最终的处理结果。
  3. 程序详细设计和测试
    该人力资源系统的权限身份主要设置有系统管理员、部门主管和普通员工。系统管理员的权限功能有员工信息管理、考勤记录的查看和统计、员工薪资信息管理、会议通知管理和查看培训计划;部门主管的权限功能为管理所属部门的员工信息、考勤打卡、查看员工考勤记录和统计、会议通知管理和培训计划管理;员工的权限功能有考勤打卡、查看会议通知和培训计划、查看自己的工资条和个人信息的修改。
    系统管理员员工信息管理实现了对员工信息的增、删、改、查,同时通过设置了注销功能实现员工离职后依然存在员工信息记录。对岗位设置不同的级别实现权限的控制,使得不同职务等级方便管理。前端通过JavaScript技术向后端AdminController层提交各种数据实现前后端交互。
    在这里插入图片描述

图1 系统管理员主页
Controller层主要有AdminController、EmployeeController、LoginFilter、ManagerController。因为在设计过程中为了减少接口管理工作在此层合拼了service层,但也导致了类中的方法较多。AdminController类为管理员模块的控制和实现相关的业务逻辑,其中包括了登录功能、系统信息管理等功能。具体包含的业务逻辑如图1 AdminController类图所示。EmployeeController类和ManagerController类同理。
在这里插入图片描述

图2 AdminController类图
因为Controller层合拼了Service层所以部分业务逻辑基本都在Controller层的代码之中,例如管理员对员工工资的管理。
在这里插入图片描述

图3 工资信息管理
在这里插入图片描述

图4 工资模块部分业务逻辑代码
LoginFilter类主要是实现一个登录过滤器,如果用户没有进行登录则无法进入系统,确保系统的安全性。图2为LoginFilter类图:
在这里插入图片描述

图5 LoginFilter类图
对于考勤模块,不同的身份权限有不同的要求系统管理员是对考勤没有做要求的所以其只有查看考勤记录的模块。而普通员工查看考勤记录就只能查看自己的记录,实现一些个人行为的保密。
在这里插入图片描述

图6 考勤信息表格展示

图7 员工查看本人考勤信息
而部门主管和普通员工都属于员工,都是需要进行打卡考勤的。具体的打卡操作页面如下图所示:
在这里插入图片描述

图8 员工打卡页面
而为了方便查看每天的考勤情况设置了条形图进行统计,此操作可以清楚方便地查看每天正常打卡的员工所占的百分比。
在这里插入图片描述

图9考勤情况趋势图
DateUtils类为一个独立的类,实现时间相关的业务逻辑。其中包括时间格式、获取系统时间、判断员工打卡时间返回员工出勤状态。因为此类可以被部门主管模块和员工模块共同使用,所以将其独立出来可以减少代码的重复。
在这里插入图片描述

图10 DateUtils类图
MyMapper接口为自定义接口,该接口MyMapper继承了Mapper和MySqlMapper接口。它的作用是为了整合MyBatis和MySql的功能,方便进行数据库操作。Mapper是MyBatis框架中的核心接口,它定义了数据库的基本操作方法,如插入、更新、删除和查询等。MySqlMapper是MyBatis中用于操作MySql数据库的接口,它定义了一些与MySql相关的操作方法。通过继承这两个接口,MyMapper接口可以同时具备Mapper和MySqlMapper的功能,从而方便进行数据库操作。
Dao层则为实现数据库数据的增删改查操作,因为使用MyBatis框架可以不需要在类中进行具体的sql语句的编写,通过xml文件的方式可以方便对数据操作进行统一管理。
以下是部分系统功能的测试:
会议信息管理、培训信息管理等模块和员工信息管理模块原来基本相同,因此不在此展示测试过程。
登录模块测试:用户需要在对应的网页地址输入对应的账号和密码才能进行登录,如系统管理员就只能在系统管理员权限设置相应的网站路径下才能登录,不能在员工网页或部门主管网页进行登录。下表所示为四类测试样例和测试结果:

表1 登录模块测试
输入说明 输入数据 预期结果 运行结果 测试结果
任意登录页面账号、密码均不输入 账号:空
密码:空 提示用户账号和密码必须输入 提示用户输入用户账号和密码,提示登录失败 通过
只输入账号,不输入密码 管理员账号:admin
主管账号:0811303
员工账号:0904711
密码:无 提示用户名或密码有误 提示用户名或密码有误,登录失败请重新输入 通过
在管理员页面输入主管和员工账号、密码(主管页面和员工页面同理) 管理员账号:admin
密码:1234
主管账号:0811303
密码:1234
员工账号:0904711
密码:1234 提示账号密码有误,请重新输入 提示账号密码有误,请重新输入 通过
管理员/部门主管/员工页面登录,输入对应账号、密码 管理员账号:admin
密码:1234
主管账号:0811303
密码:1234
员工账号:0904711
密码:1234 成功登录,
进入系统首页 提示登录成功,进入对应身份的首页 通过

员工信息管理模块测试:员工信息管理模块包含了员工信息的添加、修改和注销。管理员可以管理多个级别的员工信息,而部门主管只能管理所属部门的员工信息,普通员工本人仅能管理自己的个人信息。部门主管员工信息和管理员同理,下表为管理员管理员管理员工信息测试过程:

表2员工信息管理模块测试
输入说明 输入数据 预期结果 运行结果 测试结果
管理员录入普通员工信息 员工号:2108101
姓名:王嘉仪等相关个人信息
级别:普通员工 员工信息展示列表显示新增员工信息,级别显示为职员,员工可通过员工号进行登录到员工系统中 员工信息展示列表展示新增员工王嘉怡的个人信息,同时员工可通过员工号和默认密码进行登录 通过
管理员录入部门主管信息 员工号:0811303
姓名:邱晓光等
级别:运营主管 展示相关信息,级别为主管,
可使用员工号登录到主管系统中 展示相关信息,级别为主管;可使用员工号登录到主管系统中,进行相关操作 通过
管理员注销员工账号信息 点击注销按钮 该员工账号失效,无法进行登录系统操作 员工账号信息被标为已离职,且无法使用该账号进行登录 通过
管理员修改员工信息 修改运营主管级别 原主管变为普通员工且无法再使用主管系统 级别从主管变为员工,无法登录主管系统,
可以登录员工系统 通过

考勤模块管理:在此模块中所有人都无法对考勤信息进行修改。管理员仅可以所有员工的考勤信息和数据统计;部门主管和普通员工一样具有打卡功能,进行签到和签退。部门主管可以查看所属部门员工的考勤信息和数据统计;员工只有打卡功能和查看自己的打卡记录。下表为考勤模块测试样例:

表3考勤模块测试样例表
输入说明 输入数据 预期结果 运行结果 测试结果
员工进行签到和签退 点击签到和签退按钮 显示签到和签退成功,同时也显示具体的时间 显示签到和签退具体时间已打卡成功 通过
员工的打卡数据 无 显示员工具体打卡时间和生成条形趋势图 显示每条打卡信息和生成了条形趋势图 通过
员工工资管理模块:在此模块中主要是通过管理员给每一位员工进行设定具体工资以及一些奖罚款项。其中包括基本工资、餐补、房补、全勤奖和罚款等相关工资款项。而员工只能查看自己的工资情况。以下是该模块部分测试:
表4工资模块测试
输入说明 输入数据 预期结果 运行结果 测试结果
员工个人工资信息 具体月份、选择员工个体以及各项工资相关款项 显示员工工资信息,员工可查看自己的工资明细 显示员工工资信息,员工可查看自己的工资明细 通过
更新员工个人工资 相同的月份、选择员工个体以及不同的各项工资相关款项 显示员工新的工资信息,员工可查看自己的更新后工资明细 显示员工新的工资信息,员工可查看自己的更新后工资明细 通过
会议信息管理模块:只有管理员和部门的主管可以添加、修改和删除会议而员工只能查看,其中会议通知包括时间、地点、名称和内容。
表5 会议管理模块测试
输入说明 输入数据 预期结果 运行结果 测试结果
会议信息 时间:2023-07-10 19:00
名称:2023年会
地点:中国大酒店5楼大厅
内容:2023年会及晚宴 显示会议详细信息,部门主管也可管理该信息,员工只能查看信息 显示会议详细信息,部门主管也可管理该信息,员工只能查看信息 通过
更新会议信息 时间:2025-07-10 19:00
名称:2025年会
地点:中国大酒店1楼大厅
内容:2025年会及晚宴
显示更新后会议详细信息,部门主管也可管理该信息,员工只能查看信息 显示更新后会议详细信息,部门主管也可管理该信息,员工只能查看信息 通过
删除会议信息 点击删除 无法查看被删除会议 无法查看被删除会议 通过
培训计划信息管理模块:培训计划主要由各部门的主管进行策划,而管理员和普通员工仅能查看详细培训计划,不能做任何修改。同时在培训结束后,部门主管可以录入培训总结。
表6工资模块测试
输入说明 输入数据 预期结果 运行结果 测试结果
部门主管录入培训计划 培训课程:钉钉自动办公培训
讲师:陈萱
培训对象:全休员工
开始时间:2023-06-28 13:30
结束时间:2023-09-28 12:00 部门主管可对此培训计划进行管理,且可进行总结的编写;管理员和员工可以查看培训信息 部门主管可对此培训计划进行管理,且可进行总结的编写;管理员和员工可以查看培训信息 通过
部门主管更新录入培训计划时间 培训课程:钉钉自动办公培训
讲师:陈萱
培训对象:全休员工
开始时间:2023-05-28 13:30
结束时间:2023-06-28 12:00 显示新的培训计划信息 显示新的培训计划信息 通过
部门主管删除培训计划 点击删除 无法查看被删除培训计划 无法查看被删除培训计划 通过

4. 总结

在本次课程实践中,我设计并实现了一个人力资源管理系统,主要运用了SSM(Spring + Spring MVC + MyBatis)框架和一些基础的SpringBoot技术。通过这个项目,我获得了一些宝贵的经验和教训,以下是我的个人心得总结:
首先,通过使用SSM框架,我深入理解了Java Web开发的基本流程和组件。Spring框架提供了IoC容器和AOP编程,帮助我实现了各个模块之间的解耦和灵活性。Spring MVC框架提供了强大的MVC模式支持,使得前后端的数据交互和页面渲染更加简洁和高效。MyBatis框架则提供了强大的ORM(对象关系映射)支持,使得数据库操作更加方便和灵活。
其次,通过使用一些基础的Spring Boot技术,我能够更好地发挥SSM框架的优势。Spring Boot提供了快速构建和部署的能力,通过自动配置和内嵌的Web服务器,使得项目的开发和部署都更加简单和便捷。我学会了如何使用Spring Boot初始化项目和配置相关的属性,同时也掌握了如何使用Spring Boot的测试框架,如JUnit和Spring Test,进行单元测试和集成测试,确保系统的质量和稳定性。
此外,通过使用SSM和基础的Spring Boot技术,我加深了对于数据库设计和优化的认识。在项目开发中,我学会了如何设计和规范数据库表结构,合理使用索引和约束,以提高数据库的性能和可靠性。同时,我也认识到了连接池的重要性,通过合理配置连接池,可以有效地管理数据库连接,提高系统的并发性能。
最后,本次实践让我意识到了持续学习和不断实践的重要性。虽然我只使用了SSM和一些基础的Spring Boot技术,但这并不代表我停止了学习和扩展自己的技能。在今后的学习和工作中,我将继续深入学习Spring、Spring MVC和MyBatis等框架的高级特性,并不断探索和应用新的技术,以提高自己的技术水平和解决实际问题的能力。
总结来说,通过设计和实现这个人力资源管理系统,我在Java Web开发、数据库设计和系统优化等方面都有了一定的收获。这个项目是我技术成长的一次重要里程碑,使我更加熟悉和自信地应对实际开发中的挑战。我相信,通过不断学习和实践,我将能够在以后的项目中做得更好,并为企业的发展做出更大的贡献。
资源连接:https://download.csdn.net/download/qq_51282160/88085723

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Maybe_小涯

卑微的小白想要一分钱!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值