APP下载

师生双选系统后端设计

2021-09-13周旺吴昌平李贤和

无线互联科技 2021年12期
关键词:数据库

周旺 吴昌平 李贤和

摘 要:随着互联网的发展,越来越多的高校选择线上填取信息,比如毕业设计的师生双选系统。当学生选择自己的老师之后,老师通过当前被选择的学生来决定选择谁,这样就完成了师生双选。双选功能给学生和老师带来很大的方便,越来越多的高校使用这款软件,也反映着时代的不断进步和发展。

关键词:师生双选;数据库;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.

(编辑 何 琳)

猜你喜欢

数据库
超星数据库录入证
本刊加入数据库的声明
两种新的非确定数据库上的Top-K查询
国外数据库高被引论文排行TOP10
国内主要期刊数据库