基于SSM框架的智能驾校系统的设计与开发

2022-03-12 10:03李双郭晨晨李佳虎张慧娥
电脑知识与技术 2022年3期
关键词:微信小程序

李双 郭晨晨 李佳虎 张慧娥

摘要: 为了提高驾校的工作效率,实现驾校的智能化管理,设计并开发一款智能驾校系统是有必要的。该系统采用前后端分离技术,后台采用SSM框架、SpringBoot技术和MySQL数据库实现对后台的管理,前端采用微信小程序页面显示信息和预约操作。系统的用户角色分为管理员、教练和学员三类,管理员通过后台进行管理,教练和学员通过微信小程序页面进行预约和查看信息。该系统通过测试和试运行后,功能齐全、稳定、响应速度快,有一定的推广价值。

关键词:微信小程序;SSM;SpingBoot;MySQL

中图分类号:TP311          文献标识码:A

文章编号:1009-3044(2022)02-0062-02

开放科学(资源服务)标识码(OSID):

1 背景

据公安部交管局日前发布数据显示,截至2020年6月,我国机动车驾驶人数量达4.4亿人,上半年新领证驾驶人728万人,增长率持续上涨[1]。传统驾校预约方式落后,步骤烦琐,缺乏灵活性,效率低。随着科技的进步,智能手机的普及,开发一款智能高效的駕校系统已迫在眉睫,西安思源华津驾校为了学生有效利用课余时间,在上学期间完成驾驶小车的技能,提高效率,减少由于管理落后造成的时间浪费,开发一款驾校预约系统是非常必要的。计算机科学与技术专业的学生主动承接该项目,把学到的知识应用在实际的处理问题上,可以更好地提高自己的专业水平,为就业积累一定的实践经验。该智能驾校系统是在原有系统的基础上进行数据库的迁移,在原有功能的基础上主要添加了前端的小程序预约和后台管理功能模块的整合。

2 基于SSM框架的智能驾校系统的功能设计

该智能驾校系统主要有四个模块:预约模块、学员管理、教练管理和车辆管理模块,预约模块的功能是学员通过小程序页面查看个人的信息并进行练车和考试预约;学员、教练和车辆管理模块功能是管理员通过网站进行信息管理。系统功能模块如图1所示。

2.1后台管理模块设计

后台管理模块采用左悬挂两级目录形式显示并完成对驾校系统的学员、教练、车辆和套餐的管理。管理员成功登录后,进入系统首页,对学员、教练和车辆管理模块实现信息登记,信息查询,信息修改等功能。管理员可以查看自己管理的学员的信息,该信息通过mybatis实体查询数据库后经过实体化映射后返回json格式的数据给前端,前端通过模板渲染到浏览器。

后台管理界面如图2所示。

2.2小程序预约模块设计

前端预约模块采用微信的授权登录功能获取学员的电话号码,学员确认个人信息,登录成功后进入个人首页。在首页中显示练车和各科考试情况,通过我要练车和我要约考按钮进行预约功能。预约成功在导航栏切换进入驾校页,显示驾校和个人的基本信息、学车记录等,小程序前端页面如图3所示。

2.3系统数据库的设计

智能驾校管理系统共分为车辆、学员、教练、练车预约记录、考试预约记录、管理员。管理员具有对系统中实体信息进行全面管理的最高权限。各实体间有不同的对应关系,一个学员拥有多个考试预约记录和练车记录;教练对考试和练车预约记录进行负责;一个教练管理一辆。实体属性联系如图4所示。

2.4系统管理功能的实现

系统的管理模块主要包括学员管理、教练管理和车辆管理。学员管理包括学员的基本信息,考试预约记录,练车包车记录和学员日志的管理;教练管理包括姓名、性别、身份证号、负责车型等;车辆管理包括对教练车号、车牌号、发动机号等的管理。

主要的管理功能包括添加、删除、修改、查询,添加功能通过input将对应的信息收集起来,判断并验证合法的数据,将数据表单提交至后台,后台将信息格式化为对应的sql语句,通过sqlCommand执行并插入数据库。以教练管理为例添加信息的主要是实现代码如下。

fun saveJl(jlb: Jlb,

a1: String?, a2: String? , a3: String?, b1: String?, b2: String?, c1: String?, c2: String?, c3: String?): Boolean { var chexing = ""

if (a1 != null) chexing += "-a1"

if (a2 != null) chexing += "-a2"

if (a3 != null) chexing += "-a3"

if (b1 != null) chexing += "-b1"

if (b2 != null) chexing += "-b2"

if (c1 != null) chexing += "-c1"

if (c2 != null) chexing += "-c2"

if (c3 != null) chexing += "-c3"

chexing = chexing.trim { it == '-' }

jlb.jlcx = chexing

return save(jlb)

}

查询功能是通过对数据库中教练车表进行查询,将表结果汇总到线性表中并返回json格式的数据,前端将json的数据渲染并通过小程序进行展示。以教练管理为例添加信息的主要是实现代码如下:

fun select (page: Int,

limit: Int,

username: String?,

fzch: String?): HashMap<String, Any?> {

val hashMap = HashMap<String, Any?>()

val queryWrapper = QueryWrapper<Jlb>()

if (username != null && username.trim() != "")

queryWrapper.like("username", username)

if (fzch != null && fzch.trim() != "")

queryWrapper.like("fzch", fzch)

val count = count(queryWrapper)

hashMap["count"] = count

hashMap["data"] = page(Page<Jlb>(page.toLong(), limit.toLong()), queryWrapper).records

return hashMap

}

}

删除和修改通过input将对应的信息收集起来,判断是修改还是删除,进行相应的delete和update操作。

3 系统技术

该系统主要采用Java的SSM框架、SpringBoot、JavaScript等技术进行开发。后台数据库使用MySQL对数据进行存储[2]。

SSM框架就是Spring+SpringMVC+Mybatis框架的整合。 Spring的核心思想是IOC,即控制反转,负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖;SpringMVC相当于SSH框架中struts。它是在项目中拦截用户请求,其核心是DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller是对应请求所执行的操作。mybatis是对jdbc的封装,它让数据库底层操作变透明。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令[3]。

采用先进的MVC模式进行設计,前后端分离,前端采用微信小程序来实现[2]。采用视图层、业务逻辑层、数据库访问层的三次架构,将所有业务逻辑及数据访问封装在SpringBoot的mapper中文件中[4]。该设计思路清晰,系统开发流程简单,易扩展,有利于系统的后期维护。

4 智能驾校系统的测试与分析

对智能驾校系统进行了功能和性能测试,功能测试包括小程序端和后端管理系统进行测试,主要通过黑盒测试方法对三类用户:学员用户、教练用户、管理员用户进行了功能测试。黑盒测试过程中采用了等价分类法和边界值测试法进行了用例的设置。性能测试主要包括压力测试和稳定性测试,通过jmeter自动化测试工具进行最大并发数和稳定性测试。在测试过程中发现bug,并进行及时处理。

5 结束语

本系统前端采用小程序进行预约功能,有利于学员操作和资源合理分配;后台网站界面较为简洁美观,功能齐全。利用SSM框架实现各项功能和更简便快捷的操作方式,减少了人为差错,极大地方便了用户的使用。后台数据易于修改和维护,查询适用传统的SQL结构语言,提供了多种查询管理方式,在数据方面采用的一级缓存,对性能进行了优化,并设计了多种表格,来满足用户的需求。该系统有一定的推广价值,后期会完善功能并进行推广。

参考文献:

[1] 张茂林,白海涛,王铂智.基于微信小程序的驾校预约系统[J].电子世界,2018(9):161,163.

[2] 吴浩,孙毅超,柳淑学.基于B/S模式的实验室设备管理系统的设计与实现[J].实验技术与管理,2019,36(7):270-273.

[3] 蒙笑阳.基于SSM框架的室内定位导航系统[J].铁路通信信号工程技术,2021,18(9):38-42.

[4] 李孟津,杨丹.基于SpringBoot的在线招聘网站的设计与实现[J].科学技术创新,2020(26):98-99.

【通联编辑:朱宝贵】

猜你喜欢
微信小程序
基于CNKI的微信小程序研究文献计量分析
当图书馆遇上微信小程序