万玲娜
(东华理工大学软件学院,南昌 330013)
随着人类的不断发展和进步,不论是互联网、物联网,又或者运输行业的发展,都在展示着两个词语:“高效”和“便捷”。“高效”的含义就是能用较短的时间或者成本来获得更多的收获,于是就有了“系统”与“系统性”的由来。同时因为系统可以通过与一个科学合理设计的数据库进行连接,极大地减少了人力登记成本的同时,也降低了存储的空间成本。
对比实验室的管理模式,传统的实验室管理方式在选课预约方面,学生很难得到实验室的具体预约情况,即空闲实验室数量及实验室的空闲时间,所以大部分实验室预约只能以上课的方式以班级为单位进行预约,使学生失去了课后自我学习探究的可能性,进而影响到学生对学术研究的兴趣和积极性。因此,一个减少了人力管理,又能让学生自主进行实验预约,激发学习热情的新型实验室预约系统,对于教育的发展有着积极的影响。
实验室预约系统可以规划实验用地秩序,实验室管理人员通过该系统能实时监控和评估实验室使用情况。通过实验室预约系统,可以建立高效的信息资源共享平台,查询方便,教师可以快速便捷地检查学生的实验成果,提高工作效率。
对于Java编程语言而言,简便性是其最突出的特点。它的基础是C语言以及C++。相比于这两种编辑语言,Java编程语言显得更加简便和简单,在其应用之后,用户操作以及应用软件更方便[1]。相较于C++,Java编程语言放弃利用自动强制和运算符,这也使得整体编辑难度的降低。与此同时,Java编程语言使用命令来代理指针,消除了一些潜在的安全隐患,能够让语言更加便捷地运用[1]。
在计算机软件编程工作中,不可避免地会遇到一些需要修改的问题,如果在修改过程中采用了不同的编制语言方法,则容易导致计算机程序的设计研发出现一定的延迟或者偏差[2]。这种情况下,使用Java编程语言可以利用Java编程本身具有的便携移植性优势,在遇到需要修改的情况时,编程人员可以直接在固有的程序构架基础上,根据实际情况做出相应的改变[2]。比如:在应用商店中,用户可以根据自身的实际需求选择相应的软件,而Java编程的运用使得用户不再受下载类型的限制,为用户顺利完成下载提供保障[3]。
MySQL是所有大型数据库服务器中最流行的一种,它是一个功能丰富、开源的产品,为很多网络应用和在线应用程序提供了支持,MySQL入门相对容易,开发人员可以在互联网上访问关于这个数据库的巨量信息[4]。
Java语言和Java数据库开发对于当前数据库设计具有重要的意义,同时也是未来Java数据库开发的重要方向,对Java数据库开发技巧进行深入分析,对于提升Java数据库的数据处理效率具有重要的意义[5]。
根据功能分析,推导出该项目的结构图如图1所示。
图1 项目结构图
(1)实验室预约管理功能:管理员之外的用户能够根据时间、地点等条件对实验室进行预约操作,一名教师用户能预约多个实验室,而学生用户只能预约一个实验室且不能预约教师预约的课堂实验室[6]。各权限用户都能及时看到实验室预约使用的情况。管理员能对这一预约服务进行管理,能够根据实际情况合理分配资源,将有限的场地资源在时间限制内合理管控。
(2)教学管理:学生用户可以通过系统下载学习任务,并且上传自己的实验成果交由老师评价,教师也可通过发布文件的方式进行课堂任务的下发和对学生上传的文件进行检阅。同时实验室管理员能总揽课堂实验室使用情况,并做出合理安排。
(3)用户管理:三类用户中权限划分明确,管理者用户的权限高于另两类用户,可以对其信息进行修改,三类用户均可直接修改自己的个人信息,包括但不限于工号学号、班级、身份证等。管理员统一导入后,教师学生可进行首次登录,并修改信息。
(4)补充:管理员可以对系统的信息进行统一管理,可以修改管理员的信息,可以总揽所有实验室的使用状态,可以对系统的公告进行撰写并发布,管理员可以通过管理员界面直观地看到用户比例或者男女比例等。
系统分为三类用户,各类用户权限不尽相同,在选择完成用户类型后,按提示输入用户信息即可登入,在检测出前端发送的数据与数据库表单中各类用户数据相同、随机验证码输入正确的情况下,用户成功登录[7],具体是controller中的logon()函数用于校验对应用户的账号和密码是否与身份完全一致。如图2所示。
图2 用户登录
管理用户拥有最高的系统权限,能修改整体的数据,维护系统的主体人员,保证了服务的有序进行且实现实际资源的合理分配。管理员的权限能展现在管理用户的所有信息,查看用户、删除用户等操作也在权限内。Mybatis是数据访问操作的主体[8],数据访问层(dao)是它的作用范围。MyBatis豁免了的每次请求数据连接时JDBC繁杂且重复的连接程序,在配置文件的编写中已经囊括了本地数据库的密码连接及本地具体路径详情。开发者能省心便利地完成数据库访问[9]。
图3 管理员用户编辑修改页面
(1)重置密码,即通过controller的getuser()接口,再通过service中setuser()方法完成数据的修改。
(2)发布公告:管理员撰写一些重要的通知,通过系统可被stu与tea用户查看,前端经由Ajax通过发送post/get请求,后端再返回Json数据类型完成前后端的数据交互。此处发送的表单也不例外,后端接受到数据后,下一步调用处理逻辑的service中对应的实现类noticeimpl()方法。
图4 发布公告页面
(3)管理实验室:管理员可以管理实验室信息。新增、修改、删除(包括名称、地点、设备台数(即总人数)等)。依旧是前端向后端传数据至数据库,由Mybatis整合后台管理的查询功能,SQL无需每次使用时建立JDBC连接。其上传文件的功能核心算法创建一个工厂对象Disk-FileItemFactory,再创建一个多部件表单解析器ServletFileUpload,构造方法传入工厂对象,然后获取一个list集合来存储一个fileItem对象,然后遍历,并用getRealPath获得文件路径,完成文件的读写、上传功能,效果如图5所示。
图5 实验室预约
(4)查看实验室预约情况:管理员可以查看所有预约信息,内容包括预约人,预约时间,预约人数等。
(1)用户通用功能,即可以对自己信息进行修改,在个人界面修改完成后即可提交。
(2)查看实验室列表:教师可以查看实验室的详细信息,并根据提示内容进行筛选。
(3)管理课堂信息:教师可以新增、修改、删除课堂信息。该课堂若已经存在,不可再次添加。在controller返回对应实体类,各自变量拥有对应的参数方法,下一步系统会引用实体类的对应updatelaboratory()等运用一系列set函数的实现类,对其课堂实体类完成信息的修改。
(4)发布课堂任务:教师可以针对某一课堂发布任务,该课堂的学生可以看到该课堂作业通知信息。教师也可以上传实验资料等。前端通过表单的模式,发送get/post请求与服务器完成数据的交互,数据访问量较小,基本用不到Redis缓存,结构较为简单。
图6 文件上传
(5)查看学生作业:教师可以下载或者在线预览学生实验报告。
(6)评分和评价:学生第一次登陆之后重置密码即可以保证用户权限,登陆成功后在系统主界面可以查看管理员发布的所有公告,公告列按照创建时间倒序排列。
(1)查看个人资料:学生可以查看个人信息(用户名、学院、专业等)。
(2)查看实验室列表:学生可以查看实验室的详细信息,如图7所示。
图7 学生预约页面
(3)用户的预约:选择日期、时间区间、人数即可。预约会有上限存在,且该实验室剩余的位置还可以被其他学生预约,但是不能被教师集体预约。
(4)管理预约信息:用户可以通过系统查看自己已经预约的实验室的各类信息,在管理页面中,用户根据页面提示进行其他操作,如取消等。但是取消时间必须早于预约安排时间,否则无法取消预约。
(5)实验上传:用户可以对自己的文件进行提交操作。
图8 上传详情页面
(6)高级搜索:学生在搜索栏输入关键字(如实验室地点、预约区间、选择课堂),即可查看详细的预约情况。下载功能的实现方法:先创建form表单,然后给表单的action添加地址属性,最后提交表单,实现下载文件的目的。
系统测试是在系统完成开发的情况下,开发人员对此系统功能进行的检验,包括对用户登陆,系统界面,系统功能,用户权限,系统数据及测试系统是否能够正常完成用户操作的检测。系统测试是为了保障系统推出后的用户体验以及安全性和后期维护的体验和可行性,防止因为系统漏洞造成的损失。也能更直观地总结和了解系统的优势和缺失的功能,让后期的系统优化有着更加明确的方向。
(1)登陆页面测试:管理员、学生与教师三类用户在登陆页面进行操作时,含有用户名输入行,密码输入行和用户类型选择选项及验证码输入。需输入用户名及密码并进行验证,选择正确的用户类型,填入验证码才能成功登陆。验证失败,则不能进行登陆操作。
(2)学生个人资料编辑测试:学生进入系统后,可依据提示进行个人资料的修改,在操作菜单进入修改后,提交修改即可完成个人资料修改。
(3)学生实验室预约测试:学生进入系统后,左侧菜单栏的学生实验室预约选项中有实验室预约申请,即后续操作相关状态查询。
(4)学生实验报告管理:学生进入页面后,在左侧对实验报告管理中有实验报告添加和实验报告查询两个子选项,学生可以在实验报告添加界面添加自己的实验结果并上传,可在实验报告查询菜单中下载老师发布的实验文件或资料等。
(5)课堂信息查询测试:进入学生界面的课堂信息界面可进行课堂信息查询。
(6)管理员,教师及学生的公告信息查看测试:在各用户界面进行公告信息查询。
(7)管理员测试:管理员进入操作页面后,拥有系统的最高权限,可以进行用户管理,系统公告管理,实时监察数据等操作。
(8)教师功能测试:每个教师用户登陆后都能够进行文件上传、课堂预约等操作。
本文通过使用SpringBoot+Vue的技术,设计开发了开放实验室预约系统。本系统主要完成了以下工作:系统数据方面,主要完成了对应数据库功能表的设计,系统中的绝大部分数据均来自真实实验室数据;系统文档方面,主要建立了包括所有接口的文档,方便二次开发和调试;系统后端方面,本系统作为一个Web项目,由SpringBoot框架进行搭建,整合了多种第三方框架,在减少了繁杂配置、降低开发难度的同时,也增强了代码的可读性以及代码的复用性[10];系统前端方面,主要是采用Vue.js、layui以及Element.ui框架,界面风格采用分页模式加载数据,保证了数据的完整与显示。