李雙 郭晨晨 李佳虎 張慧娥




摘要: 為了提高駕校的工作效率,實現駕校的智能化管理,設計并開發一款智能駕校系統是有必要的。該系統采用前后端分離技術,后臺采用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.
【通聯編輯:朱寶貴】