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