师生双选系统后端设计
2021-09-13周旺吴昌平李贤和
周旺 吴昌平 李贤和
摘 要:随着互联网的发展,越来越多的高校选择线上填取信息,比如毕业设计的师生双选系统。当学生选择自己的老师之后,老师通过当前被选择的学生来决定选择谁,这样就完成了师生双选。双选功能给学生和老师带来很大的方便,越来越多的高校使用这款软件,也反映着时代的不断进步和发展。
关键词:师生双选;数据库;SpringBoot;Lombok;MybatisPlus
1 师生双选系统设计和前端介绍
1.1 功能介绍
进入登录界面,有3个选项,分别为学生、老师、管理员。管理员可以新增和修改老师学生的信息,可以查看到老师的被选课情况和学生当前是否已经被选择,如果学生已经被选择,那么可以查看当前学生的成绩。进入学生界面可以看见当前老师可选择的剩余数量(见图1),比如选择了两位老师之后,再进入两位老师的界面(见图2),如果其中一位老师选择该学生,那么另外的老师不能选择该学生,这样就可以实现师生双选的功能。
师生双选系统对密码采用了md5加密处理,保证了数据不会被盗取。整个系统使用了拦截器,当请求出现错误的时候会把错误信息反馈到前端页面[1-3]。
1.2 前端设计
相比于传统的html,css,js,师生双选系统采用了vue框架,请求方式为ES6的axios请求,UI为Element-ui。相比于传统的前端设计语言,vue的优势在于方便,性能更好,使用组件能够极大地提高开发效率。vue主要的功能有axios、router、element-ui、拦截器、信息校验,通过这些功能模块的使用,保证了开发效率的快速提高。
2 后端设计与实现
2.1 数据库设计
数据库选择的版本为5.7版本。该系统主要的数据库有学生、老师、学生-老师、分别表示学生个人信息、老师个人信息、学生和老师的双选信息。在学生-老师这个表中,设立choose值,表示当choose等于null的时候,该学生没有被老师选择,当choose等于1的时候,表示该学生已经被其中老师选择,并且删除该学生choose值为null的所有信息。
2.2 Lombok设计
在本项目中,采用Lombok提高代码的使用,让POJO代码更加简洁,不仅在BO对象,在设计模式中也有大量使用。通过使用maven项目将Lombok的相关依赖放入到pom.xml中。相对于传统的Spring代码,对每个JavaBean设立Getter,Setter,HashCode等模板代码,但通过lombok的注解@Data,@Builder就可以代替这些代码。打印日志时使用@Slf4j,这些极大地提高了代码开发效率,但缺点是代码可读性和可调式性较低,而且当JDK版本进行升级时,Lombok某些特性就会受到影响。
2.3 MybatisPlus设计
2.3.1 MybatisPlus的介绍
MybatisPlus是Mybatis的增加版本,对Mybatis只增加,不修改,无侵入,损耗小的特性让MybatisPlus更好地使用在项目当中。通过内置的Mapper和通用的Service可以让少量的代码实现大部分的CRUD操作,满足大多数接口的数据请求。另外还包括主键自动生成,支持ActiveRecord模式,内置的分页插件、代码生成器、性能分析插件、分页插件,支持多种数据库语言,包括MYSQL,Oracle等。
2.3.2 MybatisPlus的安装和配置
通过MybatisPlus的官网地址,將主要相关依赖下载到pom.xml当中,将注意MYSQL的版本号,将数据库的配置信息放入到配置文件application.properties,或者建立yaml文件,也可以将数据库的信息放入其中。
2.3.3 SpringBoot和MybatisPlus实现双选系统部分功能
先编写JsonData类,里面包含返回成功的方法和失败的方法,作用就是将从后端返回的数据打包放到JsonData中返回到前端,这样前端就可以通过接口返回的内容进行判断。
比如在学生选择老师的过程中,首先编写DO类,使用@Data将学生和老师的成员变量进行包装,实现过程如下:controller层→service层→DO层→Mapper层,其中Mapper层要继承BaseMapper,通过BaseMapper可以通过内置方法来对数据库进行操作,减少了代码量,实现CRUD功能。
2.3.4 MybatisPlus分页插件的使用
分页在前端页面中使用次数很多,在项目文件中建立config文件夹,在文件夹中创建MybatisPlusInterceptor的插件对象,就是通过拦截器将MYSQL的数据进行相同批次的拦截。在单元测试当中对分页进行测试,建立QueryWrapper<>()对象,将参数信息包装起来,再通过Page<>对象将数据计算出来,就可以获取当前的页数和当前页内容的大小。
2.3.5 MybatisPlus代码生成器
代码生成器是MybatisPlus的核心,在开发过程中使用次数很多,大大地提高了写代码的效率。相比于Mybatis的代码生成器,MybatisPlus强大了很多,它可以自动生成Controller,Service,DO,Mapper,Entity,这些文件生成的前提是连接数据库,但也要对该生成的文件进行修改,因为好多都是固定生成,有些配置不能使用,会导致后续的耦合性高,成本太大,不利于后台的维护。
2.3.6 MybatisPlus日志打印
日志就是记录信息。在上线的时候,通过日志打印将用户信息输出,这样当系统进行维护的时候,可以对没有用的数据进行删除,防止磁盘占满。在Mybatisplus中,使用@Slf4j可以将数据打印出来,而且在单元测试的时候,可以看到CRUD的具体操作过程。
3 后端其他设计
使用IDEA来编译后端代码,因为IDEA有很多的自动化代码补全功能。使用PostMan来对接口进行测试。用maven项目来打包项目,使用maven可以提高开发效率,比如当引用某个框架的时候,就可以通过导入相关依赖来使用框架,在配置maven项目时,可以将阿里云的项目地址来进行本地下载,这样在导入依赖的时候可以降低运行的时间。
4 结语
相比如传统的jsp和javaweb,vue+springboot让整个系统性能更加稳定,一个项目是通过策划、建模构建出来的,根据用户需要不断地完善功能,所以在开发过程中,要增加功能来维护线上,对系统整个数据进行分配。在项目开始的时候,选择一个好的框架极其重要,要实现系统高内聚低耦合,让系统更加完善。
[参考文献]
[1]钟茂生,王明文.软件设计模式及其使用[J].计算机应用,2002(8):34-37.
[2]马晓虎.基于B/S结构的通用学生管理系统的开发[J].电脑知识与技术(学术交流),2006(14):22.
[3]黄伟.API服务中间件的设计与实现[D].成都:电子科技大学,2020.
(编辑 何 琳)