萬玲娜
(東華理工大學軟件學院,南昌 330013)
隨著人類的不斷發(fā)展和進步,不論是互聯網、物聯網,又或者運輸行業(yè)的發(fā)展,都在展示著兩個詞語:“高效”和“便捷”。“高效”的含義就是能用較短的時間或者成本來獲得更多的收獲,于是就有了“系統”與“系統性”的由來。同時因為系統可以通過與一個科學合理設計的數據庫進行連接,極大地減少了人力登記成本的同時,也降低了存儲的空間成本。
對比實驗室的管理模式,傳統的實驗室管理方式在選課預約方面,學生很難得到實驗室的具體預約情況,即空閑實驗室數量及實驗室的空閑時間,所以大部分實驗室預約只能以上課的方式以班級為單位進行預約,使學生失去了課后自我學習探究的可能性,進而影響到學生對學術研究的興趣和積極性。因此,一個減少了人力管理,又能讓學生自主進行實驗預約,激發(fā)學習熱情的新型實驗室預約系統,對于教育的發(fā)展有著積極的影響。
實驗室預約系統可以規(guī)劃實驗用地秩序,實驗室管理人員通過該系統能實時監(jiān)控和評估實驗室使用情況。通過實驗室預約系統,可以建立高效的信息資源共享平臺,查詢方便,教師可以快速便捷地檢查學生的實驗成果,提高工作效率。
對于Java編程語言而言,簡便性是其最突出的特點。它的基礎是C語言以及C++。相比于這兩種編輯語言,Java編程語言顯得更加簡便和簡單,在其應用之后,用戶操作以及應用軟件更方便[1]。相較于C++,Java編程語言放棄利用自動強制和運算符,這也使得整體編輯難度的降低。與此同時,Java編程語言使用命令來代理指針,消除了一些潛在的安全隱患,能夠讓語言更加便捷地運用[1]。
在計算機軟件編程工作中,不可避免地會遇到一些需要修改的問題,如果在修改過程中采用了不同的編制語言方法,則容易導致計算機程序的設計研發(fā)出現一定的延遲或者偏差[2]。這種情況下,使用Java編程語言可以利用Java編程本身具有的便攜移植性優(yōu)勢,在遇到需要修改的情況時,編程人員可以直接在固有的程序構架基礎上,根據實際情況做出相應的改變[2]。比如:在應用商店中,用戶可以根據自身的實際需求選擇相應的軟件,而Java編程的運用使得用戶不再受下載類型的限制,為用戶順利完成下載提供保障[3]。
MySQL是所有大型數據庫服務器中最流行的一種,它是一個功能豐富、開源的產品,為很多網絡應用和在線應用程序提供了支持,MySQL入門相對容易,開發(fā)人員可以在互聯網上訪問關于這個數據庫的巨量信息[4]。
Java語言和Java數據庫開發(fā)對于當前數據庫設計具有重要的意義,同時也是未來Java數據庫開發(fā)的重要方向,對Java數據庫開發(fā)技巧進行深入分析,對于提升Java數據庫的數據處理效率具有重要的意義[5]。
根據功能分析,推導出該項目的結構圖如圖1所示。
圖1 項目結構圖
(1)實驗室預約管理功能:管理員之外的用戶能夠根據時間、地點等條件對實驗室進行預約操作,一名教師用戶能預約多個實驗室,而學生用戶只能預約一個實驗室且不能預約教師預約的課堂實驗室[6]。各權限用戶都能及時看到實驗室預約使用的情況。管理員能對這一預約服務進行管理,能夠根據實際情況合理分配資源,將有限的場地資源在時間限制內合理管控。
(2)教學管理:學生用戶可以通過系統下載學習任務,并且上傳自己的實驗成果交由老師評價,教師也可通過發(fā)布文件的方式進行課堂任務的下發(fā)和對學生上傳的文件進行檢閱。同時實驗室管理員能總攬課堂實驗室使用情況,并做出合理安排。
(3)用戶管理:三類用戶中權限劃分明確,管理者用戶的權限高于另兩類用戶,可以對其信息進行修改,三類用戶均可直接修改自己的個人信息,包括但不限于工號學號、班級、身份證等。管理員統一導入后,教師學生可進行首次登錄,并修改信息。
(4)補充:管理員可以對系統的信息進行統一管理,可以修改管理員的信息,可以總攬所有實驗室的使用狀態(tài),可以對系統的公告進行撰寫并發(fā)布,管理員可以通過管理員界面直觀地看到用戶比例或者男女比例等。
系統分為三類用戶,各類用戶權限不盡相同,在選擇完成用戶類型后,按提示輸入用戶信息即可登入,在檢測出前端發(fā)送的數據與數據庫表單中各類用戶數據相同、隨機驗證碼輸入正確的情況下,用戶成功登錄[7],具體是controller中的logon()函數用于校驗對應用戶的賬號和密碼是否與身份完全一致。如圖2所示。
圖2 用戶登錄
管理用戶擁有最高的系統權限,能修改整體的數據,維護系統的主體人員,保證了服務的有序進行且實現實際資源的合理分配。管理員的權限能展現在管理用戶的所有信息,查看用戶、刪除用戶等操作也在權限內。Mybatis是數據訪問操作的主體[8],數據訪問層(dao)是它的作用范圍。MyBatis豁免了的每次請求數據連接時JDBC繁雜且重復的連接程序,在配置文件的編寫中已經囊括了本地數據庫的密碼連接及本地具體路徑詳情。開發(fā)者能省心便利地完成數據庫訪問[9]。
圖3 管理員用戶編輯修改頁面
(1)重置密碼,即通過controller的getuser()接口,再通過service中setuser()方法完成數據的修改。
(2)發(fā)布公告:管理員撰寫一些重要的通知,通過系統可被stu與tea用戶查看,前端經由Ajax通過發(fā)送post/get請求,后端再返回Json數據類型完成前后端的數據交互。此處發(fā)送的表單也不例外,后端接受到數據后,下一步調用處理邏輯的service中對應的實現類noticeimpl()方法。
圖4 發(fā)布公告頁面
(3)管理實驗室:管理員可以管理實驗室信息。新增、修改、刪除(包括名稱、地點、設備臺數(即總人數)等)。依舊是前端向后端傳數據至數據庫,由Mybatis整合后臺管理的查詢功能,SQL無需每次使用時建立JDBC連接。其上傳文件的功能核心算法創(chuàng)建一個工廠對象Disk-FileItemFactory,再創(chuàng)建一個多部件表單解析器ServletFileUpload,構造方法傳入工廠對象,然后獲取一個list集合來存儲一個fileItem對象,然后遍歷,并用getRealPath獲得文件路徑,完成文件的讀寫、上傳功能,效果如圖5所示。
圖5 實驗室預約
(4)查看實驗室預約情況:管理員可以查看所有預約信息,內容包括預約人,預約時間,預約人數等。
(1)用戶通用功能,即可以對自己信息進行修改,在個人界面修改完成后即可提交。
(2)查看實驗室列表:教師可以查看實驗室的詳細信息,并根據提示內容進行篩選。
(3)管理課堂信息:教師可以新增、修改、刪除課堂信息。該課堂若已經存在,不可再次添加。在controller返回對應實體類,各自變量擁有對應的參數方法,下一步系統會引用實體類的對應updatelaboratory()等運用一系列set函數的實現類,對其課堂實體類完成信息的修改。
(4)發(fā)布課堂任務:教師可以針對某一課堂發(fā)布任務,該課堂的學生可以看到該課堂作業(yè)通知信息。教師也可以上傳實驗資料等。前端通過表單的模式,發(fā)送get/post請求與服務器完成數據的交互,數據訪問量較小,基本用不到Redis緩存,結構較為簡單。
圖6 文件上傳
(5)查看學生作業(yè):教師可以下載或者在線預覽學生實驗報告。
(6)評分和評價:學生第一次登陸之后重置密碼即可以保證用戶權限,登陸成功后在系統主界面可以查看管理員發(fā)布的所有公告,公告列按照創(chuàng)建時間倒序排列。
(1)查看個人資料:學生可以查看個人信息(用戶名、學院、專業(yè)等)。
(2)查看實驗室列表:學生可以查看實驗室的詳細信息,如圖7所示。
圖7 學生預約頁面
(3)用戶的預約:選擇日期、時間區(qū)間、人數即可。預約會有上限存在,且該實驗室剩余的位置還可以被其他學生預約,但是不能被教師集體預約。
(4)管理預約信息:用戶可以通過系統查看自己已經預約的實驗室的各類信息,在管理頁面中,用戶根據頁面提示進行其他操作,如取消等。但是取消時間必須早于預約安排時間,否則無法取消預約。
(5)實驗上傳:用戶可以對自己的文件進行提交操作。
圖8 上傳詳情頁面
(6)高級搜索:學生在搜索欄輸入關鍵字(如實驗室地點、預約區(qū)間、選擇課堂),即可查看詳細的預約情況。下載功能的實現方法:先創(chuàng)建form表單,然后給表單的action添加地址屬性,最后提交表單,實現下載文件的目的。
系統測試是在系統完成開發(fā)的情況下,開發(fā)人員對此系統功能進行的檢驗,包括對用戶登陸,系統界面,系統功能,用戶權限,系統數據及測試系統是否能夠正常完成用戶操作的檢測。系統測試是為了保障系統推出后的用戶體驗以及安全性和后期維護的體驗和可行性,防止因為系統漏洞造成的損失。也能更直觀地總結和了解系統的優(yōu)勢和缺失的功能,讓后期的系統優(yōu)化有著更加明確的方向。
(1)登陸頁面測試:管理員、學生與教師三類用戶在登陸頁面進行操作時,含有用戶名輸入行,密碼輸入行和用戶類型選擇選項及驗證碼輸入。需輸入用戶名及密碼并進行驗證,選擇正確的用戶類型,填入驗證碼才能成功登陸。驗證失敗,則不能進行登陸操作。
(2)學生個人資料編輯測試:學生進入系統后,可依據提示進行個人資料的修改,在操作菜單進入修改后,提交修改即可完成個人資料修改。
(3)學生實驗室預約測試:學生進入系統后,左側菜單欄的學生實驗室預約選項中有實驗室預約申請,即后續(xù)操作相關狀態(tài)查詢。
(4)學生實驗報告管理:學生進入頁面后,在左側對實驗報告管理中有實驗報告添加和實驗報告查詢兩個子選項,學生可以在實驗報告添加界面添加自己的實驗結果并上傳,可在實驗報告查詢菜單中下載老師發(fā)布的實驗文件或資料等。
(5)課堂信息查詢測試:進入學生界面的課堂信息界面可進行課堂信息查詢。
(6)管理員,教師及學生的公告信息查看測試:在各用戶界面進行公告信息查詢。
(7)管理員測試:管理員進入操作頁面后,擁有系統的最高權限,可以進行用戶管理,系統公告管理,實時監(jiān)察數據等操作。
(8)教師功能測試:每個教師用戶登陸后都能夠進行文件上傳、課堂預約等操作。
本文通過使用SpringBoot+Vue的技術,設計開發(fā)了開放實驗室預約系統。本系統主要完成了以下工作:系統數據方面,主要完成了對應數據庫功能表的設計,系統中的絕大部分數據均來自真實實驗室數據;系統文檔方面,主要建立了包括所有接口的文檔,方便二次開發(fā)和調試;系統后端方面,本系統作為一個Web項目,由SpringBoot框架進行搭建,整合了多種第三方框架,在減少了繁雜配置、降低開發(fā)難度的同時,也增強了代碼的可讀性以及代碼的復用性[10];系統前端方面,主要是采用Vue.js、layui以及Element.ui框架,界面風格采用分頁模式加載數據,保證了數據的完整與顯示。