基于SpringBoot的实习管理系统的设计与实现

1. 绪论

1.1 研究背景

科学技术日新月异的如今,计算机在生活各个领域都占有重要的作用,尤其在信息管理方面,在这样的大背景下,学习计算机知识不仅仅是为了掌握一种技能,更重要的是能够让它真正地使用到实践中去,以创新的视角去不断方便人们的生活,推动对新知识的学习,培养自学能力,锻炼动手实践的本领。现代的实习管理,也应该摆脱人工管理的模式,使用计算机技术来进行信息管理工作。所以本次系统设计的实习管理系统结合了文字、图像,并能实现实习管理的功能,这也是一般实习管理系统的重要的要素。实习管理系统经过几年的实践和总结正在往更深入的方向发展。由此,人们要改善系统功能迫在眉睫。随着科学技术的飞速发展,实习管理系统也要不断完善其工作流程的繁杂性、多样化、管理复杂、收缴费用与设备维护繁琐等存在的问题。所以要通过计算机胜任实习管理的工作,使实习管理系统更加准确、方便及快捷。
因此,开发出一套高效率、低差错的实习管理系统是十分必要。本系统主要目的是全面实现实习管理数字化,管理员对于用户的所有信息能够全部掌握,而用户能够对自己的实习管理信息能够有一个直观的了解。

1.2 实习管理系统的现状

现如今,实习的服务并不全面普及,就是尽管实行了实习管理,但系统进行的管理力量远远不够,所以有很多实习管理工作只停留在传统的服务状态。同时,因资金有限再加上也缺少专业水平的工作人员,所以实习的管理手段较为落后,也就很难提高实习的管理效率,同时也就不能很好的为用户提供更为完善的服务。现在都是通过手动来进行管理记录及操作,不但麻烦琐碎,还经常出现错误,给广大用户带来很不便,同时也需要大量的人力、物力和财力,极大的浪费了实习的资源。实习管理系统是实习行业的一个重要组成部分,随着实习行业的快速发展,人们慢慢地来希望实习管理系统能够提供更为合理及完善的实习管理服务。现在,好的实习管理也成为广大用户们选择实习管理系统的关键。

1.3 系统实现的功能

本次设计任务是要设计一个实习管理系统,通过这个系统能够满足实习管理及用户的管理功能。系统的主要功能包括首页,个人中心,班级管理,学生管理,教师管理,实习单位管理,实习作业管理,教师评分管理,单位成绩管理,系统管理等。
管理员可以根据系统给定的账号进行登录,登录后可以进入实习管理系统对所有模块进行管理。包括查看和修改自己的个人信息以及登录密码。
该系统为每一个用户都分配了一个用户账号,用户通过账号的登录可以在系统中查看实习管理信息及对个人信息进行修改等功能。

1.4 实习管理系统的特点

本系统提供给管理员对首页,个人中心,班级管理,学生管理,教师管理,实习单位管理,实习作业管理,教师评分管理,单位成绩管理,系统管理等诸多功能进行管理。本系统对于用户输入的任何信息都进行了一定的验证,为管理员操作提高了效率,也使其数据安全性得到了保障。

2.开发技术与环境配置

以Java语言为开发工具,利用了当前先进的springboot框架,以MyEclipse10为系统开发工具,MySQL为后台数据库,开发的一个实习管理系统。

2.1 SpringBoot框架

SpringBoot是一个全新开源的轻量级框架。基于Spring4.0设计,其不仅继承了Spring框架原来有的优秀特性,而且还通过简化配置文件来进一步简化了Spring应用的整个搭建以及开发过程。另外在原本的Spring中由于随着项目的扩大导入的jar包数量越来越大,随之出现了jar包版本之间的兼容性问题,而此时SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性问题得到了很好的解决。
SpringBoot可以看做是Spring的加强版本,但实质上都是Spring的相关技术,有了这些优秀的开源框架,程序员在开发过程中将事半功倍。

2.2 Java语言简介

Java是由SUN公司推出,该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称,也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景,它是面向对象的,分布式的,动态的,具有平台无关性、安全性、健壮性。Java语言的基本语句语法和C++一样,但是它面向对象的技术更加彻底,因为Java要求将所有的内容都必须封装成类,把类作为程序的基本单位。由于不允许类外有变量、方法。Java语言的分布式体现在数据分布和操作分布,它是面向网络的语言,可以处理TCP/IP协议,它也支持客户机/服务器的计算模式。Java语言的动态性是指类在运行时是动态安装的,使得Java可以动态的维护程序。Java不支持指针,对内存访问的所有操作都是通过对象实例化实现的,这样就避免了指针操作中易产生的错误,同时也预防了病毒对系统的破坏和威胁。
Java语言的编程风格与C语言非常接近,它继承了C++面向对象技术的核心,它面世之后发展迅速,非常流行,对高级C语言形成了很大的冲击。业内人士称之为“一次编译、到处执行”。当然java也有缺点,在每次执行编译后,字节码都需要消耗一定的时间,在某些程度上降低了性能。但是这并不影响java成为此次设计语言的选择。Java语言简单易学,使用它的编程时间短,功能性强,开发者学习起来更简便、更快。Java的主要特性有以下几个:

  • 面向对象
    面向对象有四个特点:封装、继承、多态、抽象。抽象是指忽略一个问题中的次要部分,关注主要部分。多态是指对同一种消息作出的不同反应。继承是指在原有的父类方法基础上增加自己独有的方法,而不改变原来父类。
  • 平台无关性
    Java编译出来的是字节码,直接由虚拟机执行。在任何平台上,只要有Java虚拟机,Java代码都能运行。
  • 可靠性和安全性
    Java对内存的访问都必须通过对象的实例变量来实现,避免了指针中出现的错误。
  • 多线程
    Java提供了多线程功能,利用编程实现同一时间同时工作的功能。

2.3 MySQL环境配置

利用MYSQL的数据独立性、安全性等特点,在软件项目中对数据进行操作,可以保证数据准确无误,并降低了程序员的应用开发时间。
MYSQL的特点是支持多线程,能方便的对系统资源充分利用,有效提高速度,还提供多种方式途径来对数据库进行连接;MYSQL的功能相对弱小、规模也小,但本系统要求不高,MYSQL完全可以满足本网站使用。
利用MYSQL建立系统数据库,不仅有利于数据处理业务的早期整合,还能利于发展后两种数据扩展的操作。
(1)本系统的数据使用的是MySQL,所以要将MySQL安装到指定目录,如果下载的是非安装的MySQL压缩包,直接解压到指定目录就可以了。然后点击C:\Program Files\MySQL\bin\winMySQLadmin.exe这个文件其中C:\Program Files\MySQL是MySQL安装目录。输入winMySQLadmin的初始用户、密码(注:这不是MySQL里的用户、密码)随便填不必在意,确定之后右下角任务的启动栏会出现一个红绿灯的图标,红灯亮代表服务停止,绿灯亮代表服务正常,左击这个图标->winnt->install the service 安装此服务,再左击这个图标->winnt->start the service启动MySQL服务。
(2)修改MySQL数据库的root密码。用cmd进入命令行模式输入如下命令:
cd C:\Program Files\MySQL\bin
MySQLadmin -u root -p password 123
回车出现Enter password:,这是要输入原密码。刚安装时密码为空,所以直接回车,此时MySQL中账号root的密码被改为123安装完毕。

2.4 B/S架构

B/S结构是目前使用最多的结构模式,它可以使得系统的开发更加的简单,好操作,而且还可以对其进行维护。使用该结构时只需要在计算机中安装数据库,和一些很常用的浏览器就可以了。浏览器就会与数据库进行信息的连接,可以实现很多的功能,B/S结构是可以直接进行使用的,而且B/S结构在使用中极大地减少了工作的维护。基于B/S的软件,所有的数据库之间都是相互独立的,因此是非常安全的。因为基于B/S结构可以清楚地看到系统正在处理的业务,并且能够及时的让管理人员做出决策,这样就可以避免企业的损失。B/S结构的基本特点是集中式的管理模式,用户使用系统生成数据后,这些数据就可以存储到系统的数据库中,方便日后能够用到,这样就可以满足人们的所有的需求。

基于SpringBoot的实习管理系统的设计与实现_第1张图片

3.系统分析与设计

3.1 可行性分析

一个完整的系统,可行性分析是必须要有的,因为他关系到系统生存问题,对开发的意义进行分析,能否通过本系统来补充线下实习管理模式中的缺陷,去解决其中的不足等,通过对本系统,不仅能使工作量不断地减少,还能使工作和管理的效率更加高。所以开发该网站能实现更大的意义和价值,系统完成后,能否达到预期效果就要通过可行性分析,分析之后,决定此系统是否开发。该实习管理系统的开发设计中,对技术、经济、操作方面进行了可行性分析。

3.1.1 技术可行性

本系统开发选择java语言,它被研究的目的就是在于能够为网页创建等可以看到的信息。随着移动互联网技术的不断发展和创新,java俨然已成为下一代互联网的Web标准。所以后台设计选择使用mysql数据库主要用来的建立和维护信息。对于前台开发要求应具备功能完善、易于操作等优点,后台数据库的要求则是能够建立和维护数据信息的统一性和完整性。

3.1.2 操作可行性

现在随着科技的飞速发展,计算机早已经进入了人们的日常生活中,人们的工作环境也不像以前有那么多的要求,需要员工一定要到公司办公,有的工作在家也可以完成。这使得人们的工作效益有了很大的提高。操作的多样性也变高了。因此,管理的计算机化,智能化是社会发展而带来的必然趋势,各种智能的软件层出不穷,不同的软件能完成用户不同的需求,这不仅提高了工作效率还能完成一些客户特定的一些需求。本系统不仅界面简洁明了还采用可视化界面,用户只要用鼠标和键盘就可以完成对相关信息的修改,删除,添加等操作。因为这个系统的操作十分简单,方便上手,对于第一次使用系统的人,只需要很少的时间就可以上手操作。由此可见,本系统在操作上是可行的。

3.1.3 经济可行性

基于springboot的实习管理系统,该系统软件开发仅需要一台普通的计算机便可完成实现开发,其成本很低。另外,作为毕业设计作品来讲,开发成本基本上可以忽略不计,且该系统软件的投入使用,可以实现更加快速高效的实习管理,同时还能实现对人力资源和管理资源的有效节约,该实习管理系统在经济上完全可行。

3.2 需求分析

利用springboot、Java、MyEclipse和mysql数据库等知识点,结合相关设计模式、以及软件工程的相关知识,设计一个实习管理系统,来进行记录用户的信息,以及系统信息的增删改查的功能,根据实现需求,系统需完成这些基本功能:
(1)系统合理显示系统首页界面,管理员界面,实习单位界面,教师界面和学生界面等界面。
(2)管理员,实习单位,教师和学生所有的信息都保存与数据库中。
(3)对实习管理信息能够进行查询、修改、删除、添加等操作。

3.3 总体设计

根据实习管理系统的功能需求,进行系统设计。
前台功能:用户进入系统可以实现首页,系统公告,个人中心,后台管理等功能进行操作;
后台由管理员,实习单位,教师和学生,主要功能包括首页,个人中心,班级管理,学生管理,教师管理,实习单位管理,实习作业管理,教师评分管理,单位成绩管理,系统管理等功能;
系统对这些功能进行整合,产生的功能结构图如下:
基于SpringBoot的实习管理系统的设计与实现_第2张图片

3.4 数据库设计与实现

在每一个系统中数据库有着非常重要的作用,数据库的设计得好将会增加系统的效率以及系统各逻辑功能的实现。所以数据库的设计我们要从系统的实际需要出发,才能使其更为完美的符合系统功能的实现。

3.4.1 数据库概念结构设计

数据库的E-R图反映了实体、实体的属性和实体之间的联系。下面是各个实体以及实体的属性。
系统公告实体属性图如下所示:

基于SpringBoot的实习管理系统的设计与实现_第3张图片
单位成绩实体属性图如下所示:
基于SpringBoot的实习管理系统的设计与实现_第4张图片
学生实体属性图如下所示:
基于SpringBoot的实习管理系统的设计与实现_第5张图片

3.4.2 数据库具体设计

根据E-R图,设计每张表的变量名,变量的类型及主键等如下。此处只展示部分数据库表。

3-1:单位成绩
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
xueshengxuehao varchar 200 学生学号
xueshengxingming varchar 200 学生姓名
gongzuotaidu varchar 200 工作态度
renwuwanchenglv varchar 200 任务完成率
gongzuojijixing varchar 200 工作积极性
kaohejieguo varchar 200 考核结果
danweimingcheng varchar 200 单位名称
tijiaoshijian datetime 提交时间
gongzuozhengming longtext 4294967295 工作证明
3-2:配置文件

基于SpringBoot的实习管理系统的设计与实现_第6张图片

3-3:班级

基于SpringBoot的实习管理系统的设计与实现_第7张图片

3-4:学生

基于SpringBoot的实习管理系统的设计与实现_第8张图片

3-5:用户表

基于SpringBoot的实习管理系统的设计与实现_第9张图片

4. 系统具体功能实现

4.1 前台功能模块

实习管理系统,用户进入到系统首页,可以查看首页,系统公告,个人中心,后台管理等内容进行操作,如图4-1所示。
基于SpringBoot的实习管理系统的设计与实现_第10张图片
学生注册;在学生注册页面中输入学生学号,学生姓名,密码,确认密码,年级,联系电话,院系,专业等内容进行用户注册操作;如图4-2所示。
基于SpringBoot的实习管理系统的设计与实现_第11张图片
个人中心;在个人中心页面中输入学生学号,学生姓名,密码,年级,班级,性别,联系电话,院系,专业等内容进行更新信息,如图4-3所示。
基于SpringBoot的实习管理系统的设计与实现_第12张图片

4.2 后台功能模块

后台用户登录,通过填写注册时输入的用户名、密码、选择角色等信息进行登录操作,如图4-4所示。
基于SpringBoot的实习管理系统的设计与实现_第13张图片

4.2.1 管理员功能

管理员登录进入实习管理系统可以查看首页,个人中心,班级管理,学生管理,教师管理,实习单位管理,实习作业管理,教师评分管理,单位成绩管理,系统管理等功能进行详细操作,如图4-5所示。
基于SpringBoot的实习管理系统的设计与实现_第14张图片

班级管理;在班级管理页面中可以查看索引,班级等内容,并进行详情,修改和删除操作;如图4-6所示。
基于SpringBoot的实习管理系统的设计与实现_第15张图片

学生管理;在学生管理页面中可以查看索引,学生学号,学生姓名,年级,班级,性别,联系电话,院系,专业等内容,并进行详情,修改和删除操作;如图4-7所示。
基于SpringBoot的实习管理系统的设计与实现_第16张图片
教师管理;在教师管理页面中可以查看索引,教师工号,教师姓名,性别,职称,联系电话等内容,并进行详情,修改或删除操作;如图4-8所示。
基于SpringBoot的实习管理系统的设计与实现_第17张图片
实习单位管理;在实习单位管理页面中可以查看索引,单位名称,单位性质,地址,负责人,联系电话,邮箱,单位地址等内容,并进行详情,修改和删除操作;如图4-9所示。
基于SpringBoot的实习管理系统的设计与实现_第18张图片
教师评分管理;在教师评分管理页面中可以查看索引,单位名称,单位地址,教师工号,教师姓名,学生学号,学生姓名,实习评分,批改时间等内容,并进行详情,修改和删除操作;如图4-10所示。
基于SpringBoot的实习管理系统的设计与实现_第19张图片

4.2.2 教师功能

教师登录进入实习管理系统可以查看首页,个人中心,实习作业管理,教师评分管理等功能进行详细操作,如图4-11所示。
基于SpringBoot的实习管理系统的设计与实现_第20张图片

4.2.3 学生功能

学生登录进入实习管理系统可以查看首页,个人中心,实习作业管理,教师评分管理单位成绩管理等功能进行详细操作,如图4-14所示。
基于SpringBoot的实习管理系统的设计与实现_第21张图片

实习作业管理;在实习作业管理页面中可以查看索引,实习岗位,单位名称,单位地址,学生学号,学生姓名,班级,专业,院系,教师工号,教师姓名,实习时间,实习报告等内容,并进行详情,修改或删除操作;如图4-15所示。
基于SpringBoot的实习管理系统的设计与实现_第22张图片

4.2.4 实习单位功能

实习单位登录进入实习管理系统可以查看首页,个人中心,实习作业管理,单位成绩管理等功能进行详细操作,如图4-17所示。
基于SpringBoot的实习管理系统的设计与实现_第23张图片

部分代码实现

班级管理入口代码

/**
 * 班级
 * 后端接口
 * @author 
 * @email 
 * @date 2023-04-19 23:38:10
 */
@RestController
@RequestMapping("/banji")
public class BanjiController {
    @Autowired
    private BanjiService banjiService;


    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map params,BanjiEntity banji,
		HttpServletRequest request){
        EntityWrapper ew = new EntityWrapper();
		PageUtils page = banjiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, banji), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map params,BanjiEntity banji, 
		HttpServletRequest request){
        EntityWrapper ew = new EntityWrapper();
		PageUtils page = banjiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, banji), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( BanjiEntity banji){
       	EntityWrapper ew = new EntityWrapper();
      	ew.allEq(MPUtil.allEQMapPre( banji, "banji")); 
        return R.ok().put("data", banjiService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(BanjiEntity banji){
        EntityWrapper< BanjiEntity> ew = new EntityWrapper< BanjiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( banji, "banji")); 
		BanjiView banjiView =  banjiService.selectView(ew);
		return R.ok("查询班级成功").put("data", banjiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        BanjiEntity banji = banjiService.selectById(id);
        return R.ok().put("data", banji);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        BanjiEntity banji = banjiService.selectById(id);
        return R.ok().put("data", banji);
    }
    

单位成绩管理入口代码

/**
 * 单位成绩
 * 后端接口
 * @author 
 * @email 
 * @date 2023-04-19 23:38:10
 */
@RestController
@RequestMapping("/danweichengji")
public class DanweichengjiController {
    @Autowired
    private DanweichengjiService danweichengjiService;


    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map params,DanweichengjiEntity danweichengji,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("xuesheng")) {
			danweichengji.setXueshengxuehao((String)request.getSession().getAttribute("username"));
		}
		if(tableName.equals("shixidanwei")) {
			danweichengji.setDanweimingcheng((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper ew = new EntityWrapper();
		PageUtils page = danweichengjiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, danweichengji), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map params,DanweichengjiEntity danweichengji, 
		HttpServletRequest request){
        EntityWrapper ew = new EntityWrapper();
		PageUtils page = danweichengjiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, danweichengji), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( DanweichengjiEntity danweichengji){
       	EntityWrapper ew = new EntityWrapper();
      	ew.allEq(MPUtil.allEQMapPre( danweichengji, "danweichengji")); 
        return R.ok().put("data", danweichengjiService.selectListView(ew));
    }

6. 项目总结

通过对实习管理系统的开发,让我深刻明白开发一个程序软件需要经历的流程,当确定要开发一个系统的时候,对其功能进行合理的需求分析,然后才是程序软件的功能的框架设计,数据库的实体与数据表设计,程序软件的功能详细界面实现,以及程序的功能测试等进行全方位的细致考虑,虽然在此过程中,各个环节都遇到了大大小小的困难,但是通过对这些问题进行反复的分析,深入的思考,借助各种相关文献资料提供的方法与解决思路成功解决面临的各个问题,最后成功的让系统得以正常运行。商毕业设计管理系统在功能上面是基本可以满足用户对系统的操作,但是这个程序软件也有许多方面是不足的,因此,在下一个时间阶段,有几点需要改进的地方需要提出来,它们分别是:

(1)操作页面可以满足用户简易操作的要求,但是在页面多样化设计层面上需要把一些比较丰富的设计结构考虑进来。

(2)程序软件的总体安全性能需要优化,例如程序的退出安全性,以及程序的并发性等问题都需要进行安全性升级。

(3)需要对程序的数据结构方面,程序的代码方面等进行优化,让运行起来的程序可以保持稳定运行,也让程序能够保证短时间内处理相关事务,节省处理事务的时间,提高事务处理的效率,同时对服务器上资源占用的比例进行降低。

7. 源码获取

想要源码的小伙伴,大家点赞、收藏、评论 、私信啦。感谢各位大大。

你可能感兴趣的:(Java,Java精品实战案例,spring,boot,java)