于童
摘 要:本文在針對圖書管理系統的需求和功能分析的基礎上,闡述了圖書管理系統的數據庫設計思路及實現。本文采用Java語言設計各類實現圖書管理系統圖形用戶界面,同時實現了相應動作事件,從而實現了圖書管理系統的各部分功能。
關鍵詞:圖書管理;借書還書;數據庫
一、需求分析
資料室圖書管理信息系統需實現的功能如下:
1)圖書管理:包括錄入、查詢、修改和刪除圖書信息。
2)借書:包括借閱圖書和查看借書信息。
3)還書:包括還書和查看還書記錄。
為了保證系統安全,進入系統之前應該先通過登錄驗證。
二、資料室圖書管理系統設計
(一)數據庫設計
根據以上需求分析,設計數據庫mybook,包含4個表:圖書信息表(books)其中字段名包括圖書順序號,ISBN號,書名,作者,出版社,價格,出版日期等;借書記錄表(lendRecord)其中字段名包括借書順序,借書人,借書人單位,借書日期等;還書記錄表(returnRecord)其中包括還書順序號,還書人,還書人所在單位,還書日期等;用戶信息表(users)其中包括用戶名和密碼等。
(二)系統功能能設計
根據需求分析,設計系統功能如下:
1)登錄:顯示登錄界面,用戶輸入用戶名和密碼,單擊登錄按鈕后,系統驗證用戶名和密碼是否正確,如正確則進入主界面。
2)主界面:顯示菜單,菜單結構,包括錄入圖書,查詢圖書,修改圖書,刪除圖書,借書,查詢借書記錄,還書和查詢還書記錄等項目。
3)圖書管理,共4項子功能:
a.錄入圖書,用戶在主界面菜單中選擇此功能時,進入登錄界面。用戶在錄入界面中輸入各項圖書信息后,單擊提交按鈕,系統將采集界面中的圖書信息,將其存入數據庫的圖書信息表中。
b.查詢圖書,系統為用戶提供完全查詢和模糊查詢功能。
c.修改圖書,用戶在主界面菜單中現則此功能時,進入修改界面。首先根據用戶輸入信息完成圖書信息的查詢,用戶在列表中選擇需要刪除的圖書后,單擊刪除按鈕,系統刪除圖書信息表中的相應記錄。
d.借書,用戶進入借閱圖書界面,首先根據用戶輸入信息完成圖書信息的查詢,用戶在列表中選擇需借閱的圖書后,單擊借書按鈕,系統修改圖書信息表中的相關記錄,并在借書記錄表中登記一條記錄。
e.還書,首先根據用戶輸入信息完成借書記錄查詢,用戶在列表中選擇需還的圖書后,單擊還書按鈕,系統修改圖書信息表中的相應記錄,且修改借書記錄表中相應記錄的還書狀態為true,并在還書記錄表中登記一條記錄。
三、資料室圖書管理系統實現思路
為避免圖形用戶界面中對按鈕事件處理的方法中代碼堆砌太多,造成程序的結構性太差,系統實現時采用清晰的分層結構模型。用戶通過界面輸入信息或單擊按鈕,界面層通過事件處理控制轉向業務層的不同處理方法進行處理,當需要對數據庫進行操作時,業務層調用數據庫操作層的相應書庫操作方法完成之后書庫操作層將結果返回業務層繼續處理,業務層處理完畢,則再將結果返回到界面層,界面層顯示結果,用戶由此可進一步在界面上進行操作。
四、資料室圖書管理系統實現
在資料室圖書管理信息系統中,根據以上設計和實現思路,共寫了8個類。其中界面層5個類:
loginManger類、bookManag類、updatePanel類、queryPanel類和cardPanel類;業務層1個類:Service類;數據庫操作層1個類:dataOperator類;另外還有一個附加類:MD5類,該類用來添加用戶以及登錄時對密碼進行加密處理。
在界面層中,loginManager類用于登錄界面;booksManager類是主界面;updatPanel類用于“錄入”和“修改”圖書功能所需界面;queryPanel類用于檢索圖書界面,還用于“修改”或“刪除”圖書前、“借書”前查詢圖書信息所需界面,以及查看“借書記錄”所需界面、“還書記錄”所需界面;cardPanel類用于“修改”圖書所需的卡片布局界面,該界面將queryPanel面板和updatePanel面板壘起來,首先顯示queryPanel面板查詢出的圖書信息,挑選一本后,將信息顯示在updatePanel面板上進行修改。
在業務層中,Service類封裝了界面層中除主界面之外,各個界面中按鈕事件處理時所需調用的業務處理方法,這些方法都是靜態的。
(一)建立數據表
在SQL Service數據庫管理系統下,建立數據表myBooks,在該數據庫中創建4個表,表名分別為“boos”、“lendRecord”,“returnRecord”和“users”。在系統中建立登錄用戶名為“adm”,密碼為“123456”。
(二)登錄功能實現
loginManager類是JFrame類的子類,并實現了ActionListener接口。封裝在loginManager類中的main()方法是系統運行的入口方法。在該方法中創建loginManager窗口對象,并為loginManager窗口注冊窗口監聽器,最后顯示窗口。actionPerformed(ActionEvent)是ActionListener接口定義的方法。在loginManager窗口中,當用戶輸入了用戶名和密碼,單擊“登錄按鈕”時,執行該方法。
(三)錄入圖書功能的實現
在主界面,當用戶選擇“圖書管理”菜單下的“錄入”菜單項時,創建該面板類對象,將其放在主界面新建的內部窗口框架中。該面板從主界面booksManager對象接收到操作標記等參數。updatePanel類是JPanel類的子類,并實現了ActionListener接口。其中的構造方法負責完成錄入圖書面板的初始化,并為按鈕“提交”和“取消”注冊動作監聽器。如當用戶在面板上的文本框中輸入了圖書信息,單擊“提交”按鈕時,執行動作事件方法,在該方法中取得用戶在文本框中輸入的內容,調用Service類中的addBook方法完成數據庫添加圖書操作。如果返回值為0,則操作成功,否則操作失敗。
(四)檢索圖書功能的實現
在主界面中,當用戶選擇“圖書管理”菜單下的“檢索”菜單項時,創建該面板類對象,將其放在主界面新建的內部窗口框架中。該面板從主界面類對象接收到操作標記和用戶標識號。