趙越超 胡杰

摘 要:在計算機新技術的沖擊下,傳統的圖書管理方式會被逐漸淘汰,新型的圖書管理應該結合“互聯網+”的思想使管理趨向簡單、安全、高效。該文主要以圖書管理系統為研究對象,通過需求分析、概要設計和數據庫設計等,詳細描述了基于JavaEE的圖書管理系統的實現過程,并在此實現過程中對容易出現的問題提供了解決方案。
關鍵詞:JavaEE;圖書管理系統;互聯網+;數據庫設計;系統設計;圖書館
0 引 言
在近幾年,隨著教育事業的發展和網絡技術的廣泛普及,傳統的圖書管理方式已經不再適用[1]。新型的圖書管理方式應該趨向簡單、安全、高效。傳統的圖書管理的工作重點是對讀者借閱信息的登記,其一般會采用人工線下管理的方式,這種方式帶來的工作負擔會隨著借閱信息的增多而逐漸加重。這種情形下,不僅會加大資源的開銷,還會導致讀者借閱的困難。為了提高傳統的圖書管理效率,減少不必要的開銷,同時讓圖書管理更加科學化、智能化、效率化[2],開發設計了基于JavaEE的圖書管理系統。本系統界面友好、簡單易操作、功能強大,能夠智能地對借閱時間到期限的用戶提醒,避免資源浪費。
1 需求分析
根據需求的不同將此設計劃分成了兩部分,分別為圖書館工作人員和讀者(學生和老師)。然后從不同的用戶角度出發,進行需求分析,大致概括如下:
讀者(學生和老師)可查閱借閱信息和自己的基本信息[3]。當借閱時間到期限時,可以有提示信息來進行警示,避免讀者忘記還書。讀者還可以進行在線提交延遲借閱時間的申請。
圖書館工作人員可以增加圖書到系統中,從而減小統計圖書的工作負擔;同時,要保證圖書館工作人員對圖書具備修改和刪除的權限。增加圖書時能夠動態設置圖書類型,這樣符合實際的圖書分類情景。圖書館工作人員還需進行借閱圖書的管理工作,對借閱書籍,歸還書籍要有很好的管理方式,避免手工勞作。圖書館工作人員能夠對讀者信息進行管理,添加讀者時可以為老師和學生增添不同借閱書籍的權限[4]。
2 相關技術介紹
本系統設計主要是基于SSM架構[5],即Spring,SpringMVC和MyBatis,系統前端界面使用了HTML+CSS+ Bootstrap實現,數據庫使用MySQL,開發工具使用Eclipse。
Spring是一個輕量級的開源Java框架,用來裝配項目中Bean的大工廠,在配置文件中可通過指定使用特定的參數來調用實體類的構造方法,從而實例化對象。
SpringMVC框架是基于MVC設計模式請求驅動類型的輕量級框架,為JavaEE提供了各層的解決方案,包括視圖層、業務層和服務層,增強項目的擴展性。
MyBatis是一個對象關系映射框架,對JDBC進行輕量級的封裝,將POJO對象與數據表建立映射關系。MyBatis和Spring結合的要點是項目實體類中具有無參和有參的構造方法。MyBatis負責Java后端和數據庫之間的數據交換。
Bootstrap是基于HTML,CSS,JavaScript開發的簡潔、直觀、強悍的前端開發框架,使得Web開發更加快捷。Bootstrap中包含了豐富的Web組件,根據這些組件,可以快速地搭建一個漂亮、功能完備的前端界面。
3 系統概要設計
按照需求將此系統的使用者分為用戶端(教師和學生)和管理員端(圖書館工作人員)兩類,根據用戶的不同來對應不同的功能權限,從而將此系統劃分為用戶子系統和管理員子系統兩部分[6]。
在用戶子系統中,使用者通過圖書管理員提供的賬號密碼(讀者)登錄系統主頁,然后用戶通過主頁鏈接進入基本信息、借閱信息查詢、系統功能三個功能模塊[7],在模塊內完成查看基本信息、修改基本信息、查詢借閱信息、延長借閱時間、修改密碼、注銷登錄等功能。
在圖書管理員子系統中,使用者通過賬號密碼(管理員)登入系統主頁,然后管理員通過主頁鏈接進入圖書管理、圖書類型、讀者管理、用戶管理、借閱信息、系統功能六個功能模塊。在圖書管理模塊中,可以對圖書進行增加、修改、刪除;在圖書類型中,可以對圖書的類型進行增加、修改、刪除操作,動態地把圖書類型增加到下拉列表中;讀者管理模塊中,可以增加讀者的信息;在用戶管理模塊中,可以增加讀者所屬的類型,不同的用戶類型將有不同的權限;在借閱模塊中,可以對借閱的信息進行管理;在系統功能模塊中可以進行修改密碼和退出系統[8]等操作。
4 數據庫設計
根據圖書管理員和讀者的需求,設計管理員信息表、讀者信息表、借閱信息表等[9],管理員信息見表1所列,讀者信息見表2所列,借閱信息見表3所列。
5 系統設計與實現
5.1 讀者(教師和學生)
5.1.1 登錄/注銷模塊
讀者在瀏覽器中輸入地址,可看到系統登錄界面,選擇用戶登錄、輸入用戶名和密碼,當用戶名或者密碼沒有填寫時,會提示“這是必填字段”的信息,并且讀者不能登錄系統。這里提示信息是在JSP頁面引入Bootstrap插件,在必填項的中加入required屬性來進行實現。在讀者正確輸入用戶名和密碼,點擊“登錄系統”后,登錄頁面會向Java后端發送一個攜帶用戶信息的請求。這個請求被Spring中的DispatcherServlet攔截并提交給UserController函數進行處理[10]。UserController使用MyBatis連接數據庫進行核對,當用戶名和密碼完全匹配數據庫保存的數據后,頁面會跳轉到讀者首頁,同時在Java后端增加對讀者起到會話控制作用的Session鍵值對;否則會出現“用戶名或密碼不正確”的提示信息框[11],讓讀者再次輸入賬號和密碼。信息框的實現是在Java后端重新生成一個提示頁面,讀者在點擊信息框上的確定后,頁面從定向跳轉到讀者登錄界面中。當讀者需要退出系統時,點擊界面右上角的“注銷登錄”,然后Java后端會把增加的Session鍵值對移除,實現注銷功能[12]。
5.1.2 基本信息模塊
讀者在功能欄中點擊“基本信息”,Java后端通過Session中的id定位到數據庫中讀者的信息,讀取出來,封裝到Reader實體類中,然后通過EL表達式在user-readers-list.jsp頁面中顯示出當前讀者的基本信息[13]。讀者在“基本信息”模塊擁有修改的權限,以保證讀者信息的正確性。讀者雖然具有修改權限,但是不會對讀者類型進行修改。這一點的實現是把user-readers-edit.jsp頁面中的“讀者類型”設置為隱藏表單域,這樣讀者就無法進行修改,同時也保證了“讀者類型”屬性中保存的數據不會遺失。讀者在修改基本信息時,其中只有E-mail和QQ是選填項,其他為必填項。如果讀者必填項沒有填寫,表單則無法提交,這一功能的實現是運用Bootstrap插件的data-toggle屬性[14],在