蔣晟 陳科





摘 ?要:近年來,隨著高等教育的快速發展,大學生的人數日益增加,然而部分高校仍以人工記錄的方式進行管理。針對這種傳統管理方式,為進一步優化宿舍的管理效率,通過使用Springboot架構模式與EasyUI前臺框架相結合,設計出了一款學生宿舍管理系統。該系統實現了學生的入住寢室與交換寢室管理、寢室衛生與日常的評級管理、宿舍的報修管理等功能,降低了管理宿舍的難度。
關鍵詞:Springboot;Mybatis;數據庫設計;宿舍管理系統
中圖分類號:TP311 ? 文獻標識碼:A ?文章編號:2096-4706(2021)12-0006-04
Abstract: In recent years, with the rapid development of higher education, the number of college students is increasing day by day. However, some colleges still manage them by means of manual recording. Aiming at this traditional management method, in order to further optimize the management efficiency of the dormitory, a student dormitory management system is designed by combined using the Springboot architecture mode and the EasyUI foreground framework. The system realizes the functions of students' checking in dormitory and exchanging dormitory management, dormitory hygiene and daily rating management, dormitory repair management and so on, and reduces the difficulty of the dormitory management.
Keywords: Springboot; Mybatis; database design; dormitory management system
0 ?引 ?言
大學宿舍是學生放松休息的地方,也是入校時每個學生都會去的地方,對宿舍進行有效的管理,可以減少資源的浪費,也可以使學生進校后的寢室調整需求能夠迅速得到解決,減少同學以及宿舍管理人員的壓力[1]。但多年的人工現場登記方式通常使用紙質形式,如果需要查找信息,則十分耗時耗力,并且高校人數眾多,數據更新非常頻繁,很難快速進行操作,所以這種實體資料不利于進行高效管理。此外,學生如果遇到宿舍里燈管、門鎖等發生故障,需要自行到相應地點進行報修,效率很低。學生宿舍管理系統不僅可以有效地解決這些問題,而且可以推動宿舍管理向便利化、信息化方向發展。
1 ?關鍵技術介紹
1.1 ?SpringBoot框架
傳統的Spring框架在開始搭建及開發過程中都會依賴大量的配置,使得開發效率低下,經常會出現各種錯誤,既耗費了開發人員的精力,浪費了時間,還十分繁瑣。但是SpringBoot是一個效率極高的框架,不僅能夠減少人工依賴的配置問題,它還能全部通過注解的形式進行使用,通過Java應用程序執行。因此,它能讓編程人員集中精神于業務的邏輯進行開發,而無需過多關注XML配置,大大提高了開發、部署效率[2]。
1.2 ?Mybatis框架
MyBatis是Java中很常用的Object Relational Mapping框架,可以使用注解或者通過XML去配置與映射信息,并且在系統的開發過程中,不需要耗費大量的時間去對數據加載驅動、創建連接等繁雜的過程進行處理,只需要集中處理SQL語句。可以嚴格控制SQL執行性能,靈活度很高。也能輕松通過對SQL的優化提高接口的性能,適用于需要頻繁優化的項目使用[3]。
1.3 ?JQueryEasyUI簡介
EasyUI是一個基于JQuery的框架,可以幫助開發人員輕松創建功能豐富的界面,并且無需編寫復雜的Javascript,節省了網頁開發的時間和規模,雖然操作簡單但功能強大[4]。
1.4 ?MySQL簡介
MySQL,是一個關系型的數據庫管理系統,它也是目前最常用、最常見的數據庫之一,為了提高運行速度和靈活性,MySQL可以將數據存儲在不同的表內,而不是將數據集中存儲在一張表中。MySQL中所使用的SQL語言是訪問數據庫最常用的標準化語言[5]。
2 ?系統分析與設計
2.1 ?系統分析
本系統中可以分為三個身份登錄,分別是:管理員、學生和宿舍管理員,每個身份角色登錄所執行的功能都是不同的。本系統的功能模塊如圖1所示。
2.1.1 ?管理員端的功能模塊
管理員包含所有模塊的功能,具體為以下模塊。
學生入住管理模塊:
(1)入住管理:學生宿舍的分配。
(2)退寢管理:即刪除退學、休學、畢業的學生。
(3)宿舍調整:調整申請換寢的學生信息。
(4)學生查詢:提供學生的名字、學生編號、宿舍編號等信息的查詢。
寢室信息管理模塊:
(1)宿舍管理:對宿舍號和床位進行一個增刪改查的操作。
(2)樓棟管理:更改新建或已拆卸樓棟的信息。
宿舍報修管理模塊:為學生提供宿舍維修申請,并根據處理情況更新相應的操作。
宿舍評級管理模塊:在宿舍管理人員對宿舍打過分之后,進行一個評級與排名的操作。
晚歸人員管理模塊:對晚于歸寢限定時間的學生信息錄入到數據庫。
權限管理模塊:對用戶的賬戶密碼以及個人信息進行添加、刪除、查詢以及修改操作。
2.1.2 ?宿管員端的功能模塊
宿管員具有部分模塊中的部分權限,如:
學生入住管理模塊:學生查詢——查詢學生個人姓名、學號、宿舍號等信息。
寢室信息模塊:宿舍管理——查詢寢室里的學生的信息,也能查詢到對應床位學生的信息。
宿舍報修管理模塊:能夠對申請報修學生的寢室號、學生信息以及學生所發的評論進行查看,在查看信息之后,進行核對操作,學生能夠看到發布的報修信息是否審核成功,最后在完成維修后對該報修信息進行一個回復與刪除操作。
宿舍評級管理模塊:對每個學生宿舍的衛生、安全、查寢情況進行評分。
晚歸人員管理模塊:查詢晚于限定返寢時間的學生信息。
權限管理模塊:修改密碼和信息。
2.1.3 ?學生端的功能模塊
學生具有部分模塊中的部分權限,如:
學生入住管理模塊:
(1)學生查詢:查詢名字、學生編號、寢室號等信息。
(2)宿舍調整:提交自己需要更換寢室的申請。
宿舍報修管理模塊:提交需要報修的申請和意見,修改和刪除報修信息,查看宿舍管理員的審核狀態。
權限管理模塊:修改自己的密碼以及信息。
2.2 ?系統主要設計
2.2.1 ?數據庫設計
在設計數據庫之前,充分認識每一個實體的屬性和實體與實體之間的關系是非常重要且必要的,畫出E-R圖也會提高我們的工作效率,節省思考時間。系統的實體關系如圖2所示。
根據上面的實體關系圖,可以設計出多張表格,并且每張表格都存儲著所對應的具體信息,如表1、表2所示。
2.2.2 ?后臺功能設計
登錄功能:用戶輸出賬號密碼進入,在此過程中將會提交form表單并處理post請求,通過type來判斷用戶登錄的角色,通過存儲在庫內的用戶數據會與輸入的賬號密碼進行一個對比,如果校驗無誤則進入到相應的前端界面,如果不一致,則返回到前端并在頁面上返回出相應的信息給用戶,以下是功能的實現。
@PostMapping("/login")
@ResponseBody
public AjaxResultsubmitlogin(String username, String password, String code, String type,
HttpSessionsession){
AjaxResultajaxResult = new AjaxResult();
if(StringUtils.isEmpty(username)){
ajaxResult.setSuccess(false);
ajaxResult.setMessage("請填寫用戶名");
return ajaxResult;
}
if(StringUtils.isEmpty(password)){
ajaxResult.setSuccess(false);
ajaxResult.setMessage("請填寫密碼");
return ajaxResult;
}
//數據庫校驗
switch (type){
case "1":{ //管理員
Admin admin = new Admin();
admin.setPassword(password);
admin.setUsername(username);
Admin ad = adminService.findByAdmin(admin);
if(StringUtils.isEmpty(ad)){
ajaxResult.setSuccess(false);
ajaxResult.setMessage("用戶名或密碼錯誤");
return ajaxResult;
}
ajaxResult.setSuccess(true);
session.setAttribute(Const.ADMIN,ad);
session.setAttribute(Const.USERTYPE,"1");
break;
}
增刪改查功能:此功能主要通過Mybatis來實現。一般項目的響應過程是用戶向瀏覽器發起請求,然后瀏覽器將請求發送到控制器層所對應的方法進行處理,然后控制器層將會調用服務層的方法進行處理,服務層調用Dao層對數據執行相應的數據庫操作,然后從同一路徑返回到瀏覽器。使用Mybatis可以將SQL語句從代碼中分離出來,并將其存儲在XML配置文件中,以便于維護和管理,沒有必要在Java代碼中找到這些語句[6]。以下顯示了部分查詢和添加功能代碼:
<insert id="addStudent" parameterType="Student">
insert into t_student(student_number,student_name, password,sex,mobile,qq,room_number) ? ? ? ?values(#{student_number},#{student_name},#{password},#{sex},#{mobile},#{qq},#{room_number}) ? ?</insert>
Select *from t_student
<where><if test ="student_name!=null"> ?and student_name LIKE concat ("%",#{ ? student_name},"%")</if>
<if test="room_number!=null"> and room_number LIKE concat("%",#{room_id},"%") </if>
<if test="student_number!=null"> and id = #{student_number} </if>
</where>
寢室報修功能:學生在發現宿舍物品或其他問題時,可以提交原因給宿舍管理員。以下為相應代碼,報修功能如圖3所示:
@PostMapping("/addComment")
@ResponseBody
public AjaxResultaddComment(Comment comment){
AjaxResultajaxResult = new AjaxResult();
try {
int count = commentService.Comment(comment);
if(count > 0){
ajaxResult.setSuccess(true);
ajaxResult.setMessage("添加成功");
}else{
ajaxResult.setSuccess(false);
ajaxResult.setMessage("添加失敗");
}
} catch (Exception e) {
e.printStackTrace();
ajaxResult.setSuccess(false);
ajaxResult.setMessage("系統異常,請重試");
}
return ajaxResult;
}
2.2.3 ?前端功能設計
分頁功能:因為高校學生人數眾多,所以必須要有一個分頁功能,分頁處理就是通過點擊按鈕進行跳轉到一下頁,也可以修改每頁顯示信息的條數。通過Easyui,我們可以快速地完成編寫操作。實現功能的具體代碼為:
前端顯示:分頁的按鈕圖如圖4所示,界面圖如圖5所示:
var p = $('#dataList').datagrid('getPager');
$(p).pagination({
pageSize: 10,//每頁顯示的記錄條數
pageList: [10,20,50,100],//可以設置每頁記錄條數的列表
beforePageText: '第',//在頁數文本框前顯示
afterPageText: '頁共 {pages} 頁',
displayMsg: '當前顯示 {from} - {to} 條記錄共 {total} 條記錄',
});
3 ?結 ?論
本文基于SpringBoot、Mybatis、EasyUI、MySQL等技術,實現了該系統的功能,且每個角色都能使用相對應的功能。在系統的開發過程中,Springboot和EasyUI這兩個框架給開發提供了巨大的便利,但是因為本人能力有限,此系統的結構比較單一,功能不夠完美,后期將會添加輔導員與二級學院管理員等角色進而豐富該系統的結構,另外此系統的界面設計不夠精細、美觀,這也為進一步完善系統提供了一個思路與方向。
參考文獻:
[1] 李政.互聯網時代高校學生宿舍管理思考 [J].科技經濟導刊,2020,28(34):208-209.
[2] 張峰.應用SpringBoot改變web應用開發模式 [J].科技創新與應用,2017(23):193-194.
[3] 孫浩.基于SpringMVC及MyBatis框架的在線教育平臺的設計與實現 [D].沈陽:沈陽師范大學,2019.
[4] 申永芳.基于jQuery框架的Web前端開發的研究 [J].信息通信,2019,32(10):105-107.
[5] 練振興.MySQL讀寫分離的技術原理 [J].福建電腦,2019,35(8):49-51.
[6] 周杰.基于Spring MVC的教務管理系統 [J].電子技術與軟件工程,2020(4):203-207.
作者簡介:蔣晟(2000—),男,漢族,四川德陽人,本科在讀,研究方向:軟件工程;陳科(1981—),男,漢族,四川眉山人,副教授,工學博士,研究方向:計算機應用技術,軟件體系架構。