唐昌華+陳堅+李洪亮
[摘 要]本文針對高校圖書館存在的問題,采用Struts和Hibernate技術設計實現圖書管理系統,滿足校園圖書館對圖書管理的需求。該系統采用B/S結構,使用JSP開發前臺網頁,后臺使用Hibernate對Mysql數據庫進行數據操作。重點從總體框架、層次結構、數據庫方面,對圖書管理系統進行設計,并對系統進行測試,結果顯示系統符合預期要求,提高了圖書管理人員的工作效率。
[關鍵詞]圖書管理系統;Struts;Hibernate
doi:10.3969/j.issn.1673 - 0194.2017.20.095
[中圖分類號]G250.7 [文獻標識碼]A [文章編號]1673-0194(2017)20-0-02
0 引 言
本文設計并實現了圖書管理系統,以能夠完成圖書、讀者等基本信息的錄入與查詢,實現圖書的借閱與歸還,并能通過動態的權限分配,使管理人員擁有各自的功能管理,不互相影響,進而控制各級別管理人員不越權使用本系統。
1 Struts和Hibernate技術
Struts是基于MVC(Model-View-Controller)設計模式的一個框架。MVC設計模式,降低了數據處理和數據顯示之間的耦合性,從而增強了程序的可復用性和易維護性。Struts的處理過程如下。
(1)通過客戶端JSP頁面與用戶進行交互,將頁面提交的數據封裝到Java Bean中。
(2)通過請求路徑查找Struts.xml配置文件中Action的配置,找到并調用相應的Action。
(3)在Action中調用業務邏輯方法處理用戶請求。
(4)查找相應的Result,并找到正確的JSP頁面進行轉發,返回給客戶端。
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使Java程序員可以隨心所欲地使用面向對象的思維方式,操作關系數據庫。Hibernate是Java應用和關系數據庫之間的橋梁,將應用層的對象操作直接轉化為數據庫的表操作。Hibernate可應用在任何使用JDBC的場合,即可以在Java客戶端程序中使用,也可以在使用JSP的Web應用中使用,完成數據的持久化操作。
因此,本文將Struts和Hibernate兩種框架技術結合起來,通過Struts降低MVC各層之間的耦合,增強系統的可維護性;并利用Hibernate封裝數據庫操作部分,增強系統的復用性,以形成快速實現Web應用的有效方案,從而更加高效地完成圖書管理系統。
2 圖書管理系統總體設計
圖書管理系統包括用戶管理、圖書分類管理、圖書管理、讀者分類管理、讀者管理、借閱管理、歸還管理、罰金管理以及動態權限分配等多個模塊,如圖1所示。
各功能模塊說明如下。
(1)圖書分類管理包括圖書分類添加、圖書分類刪除、圖書分類修改以及圖書分類查詢。
(2)圖書管理包括圖書添加、圖書刪除、圖書修改、圖書查詢以及圖書封面的上傳、下載。
(3)讀者分類管理包括讀者分類添加、讀者分類刪除、讀者分類修改以及讀者分類查詢。
(4)讀者管理包括讀者添加、讀者刪除、讀者修改、讀者查詢以及讀者照片的上傳、下載。
(5)借閱管理包括圖書借閱、圖書借閱記錄刪除、圖書借閱查詢。在圖書借閱時,管理人員先統計該讀者是否有超期的圖書,如果有提示不能借閱,并跳轉到相應的繳納罰金頁面,再統計該讀者的借閱數量,如果超過最大借閱數量,進行相應提示,否則添加借閱信息,并將當前圖書設置為“已借”狀態。
(6)歸還管理包括圖書歸還、圖書歸還記錄刪除、圖書歸還查詢。歸還時,如果該書已超期,跳轉到相應的繳納罰金頁面,否則修改歸還日期為系統當前時間,并將當前圖書設置為“可借”狀態。
(7)罰金管理包括繳納罰金、罰金刪除、罰金查詢。罰金的計算公式為:罰金=超期后每天罰金數×(歸還日期-借閱日期-最大借閱天數)
3 圖書管理系統層次結構
圖書管理系統采用Struts框架作為開發的框架,采用四層結構,JSP作為視圖層,Action類與配置文件作為控制層,Business類作為業務邏輯層,Hibernate作為數據持久化層,采用Mysql作為數據庫。JSP傳遞用戶請求到Action層,Action層調用Business層進行處理,并返回到相應的JSP頁面進行顯示,而Business層調用Hibernate進行數據處理。
4 圖書管理數據庫設計
圖書管理系統設計一個數據庫BookDB,含有9個表,分別是用戶表(User Info)、圖書分類表(Book Category)、圖書表(Book)、讀者分類表(Reader Category)、讀者表(Reader)、借還表(Borrow)、罰金表(Fine)、功能菜單表(Menu Tree)以及權限分配表(User Role)。其中,讀者分類中含有最大借閱數量、最大借閱天數、超期每天發錢數、用于借閱和罰金時的計算。借還表中有借閱日期和歸還日期用于計算借閱時長等。本文設計的系統ER圖如圖2所示。
5 圖書管理系統實現
圖書管理系統在實現各功能模塊中都實現了權限檢查,并使用過濾器對未經登錄而對后臺的請求進行了處理,使用戶不能繞過登錄,并實現了安全退出,進一步增強了系統的安全性。對于每一個顯示頁面使用Struts和Hibernate結合的方式實現了分頁查詢,并使用Page類將分頁的業務邏輯進行了封裝,使每一個頁面的分頁功能能夠統一處理,增強了代碼的魯棒性和可復用性。主要的系統界面實現如圖3和圖4所示。
6 結 語
本文設計的圖書管理系統實現了圖書管理、圖書借閱歸還等功能,還實現了動態權限分配、安全退出等功能,并在提高工作效率的情況下,增強了系統的安全性。
主要參考文獻
[1]唐昌華,時兵,時慶濤.基于Struts和Hibernate畢業設計管理系統的設計與實現[J].數字技術與應用,2012(11).
[2]劉艷春,洪曉慧.Struts 2框架核心配置文件的研究與應用[J].計算機技術與發展,2013(2).
[3]孫衛琴.精通Struts基于MVC的Java Web設計與開發[M].北京:電子工業出版社,2004.endprint