圖書館管理系統(tǒng)畢業(yè)設計論文_第1頁
圖書館管理系統(tǒng)畢業(yè)設計論文_第2頁
圖書館管理系統(tǒng)畢業(yè)設計論文_第3頁
圖書館管理系統(tǒng)畢業(yè)設計論文_第4頁
圖書館管理系統(tǒng)畢業(yè)設計論文_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、畢業(yè)設計(論文) 題目: 圖書館管理系統(tǒng) 姓 名 陳 平 學 號 專 業(yè) 計算機網絡 指導教師 周亞鳳 南京航空航天大學2012年4月目錄摘要iii前言iv第一章 圖書館管理系統(tǒng)分析11.1 需求分析11.2 功能分析21.3 系統(tǒng)用例圖設計21.4 繪制系統(tǒng)流程圖31.5 系統(tǒng)的開發(fā)環(huán)境4第二章 數據庫分析與設計52.1 數據庫分析52.2 數據庫概念設計52.3 數據邏輯結構設計72.4 各表之間的聯(lián)系圖9第三章 系統(tǒng)設計與功能實現103.1 數據庫dao類的構建103.2 系統(tǒng)登錄模塊113.3 主窗體模塊133.4 圖書類別管理模塊153.5 圖書信息管理模塊173.6 讀者信息管理模

2、塊213.7 圖書訂購管理模塊243.8 圖書借閱管理模塊273.9 系統(tǒng)維護模塊30第四章 系統(tǒng)測試354.1 測試項目354.2 測試用例35結束語37參考文獻38圖書館管理系統(tǒng)摘要圖書館管理系統(tǒng)是采用java做前臺,后臺數據庫則采用的是sql server 2005,本系統(tǒng)提供6個功能模塊,分別是圖書類別管理模塊、圖書信息管理模塊、讀者信息管理模塊、新書訂購管理模塊、圖書借閱模塊,以及系統(tǒng)維護模塊。這6個模塊里又有許多子模塊,通過這些模塊之間的相互連接與配合,完成操作員發(fā)出的各種指令。圖書館管理系統(tǒng)是一個供內部人員使用的系統(tǒng)。而圖書館的工作人員也分為兩類,一類是操作人員,主要負責圖書的借

3、閱和歸還的工作;一類是管理員,除了操作人員的所有功能外,還能夠對書籍列表、書籍信息、讀者信息等進行管理。論文將全面介紹所設計的圖書館管理系統(tǒng)的系統(tǒng)功能和業(yè)務流程,并對系統(tǒng)進行詳細的數據分析和設計,最終使用java完成系統(tǒng)開發(fā)。關鍵詞:圖書館管理系統(tǒng),sql server 2005,java前言隨著社會的發(fā)展,人們對于知識的需求也在不斷地增長。書籍作為人們獲取并增長知識的主要途徑,使得圖書館在人們生活中占有了一定位置。但是近幾年來,隨著書量的不斷增長,造成了書庫空間極度不足,圖書擠壓,管理不善。這些都直接影響了讀者對圖書館藏書的充分利用。這時圖書館就特別需要開發(fā)一套圖書館管理系統(tǒng),通過該系統(tǒng)來提

4、高圖書館的管理效率,從而減少管理方面的工作流和成本。一個現代化的圖書館在正常運營中總是面對大量的讀者信息,書籍信息以及兩者相互作用產生的借書信息,還書信息。面對圖書館數以萬計的圖書,紛繁復雜的讀者信息,頻繁更替的借還書信息,傳統(tǒng)的直接方法不但管理出現漏洞,造成損失。因此有一個智能化、系統(tǒng)化、信息化的圖書管理系統(tǒng)十分重要的。充分利用計算機的功能實現對讀者管理、書籍管理,借閱管理等自動化控制,將會使圖書館的工作大大減弱。方便友好的圖形界面、簡便的操作、完善的數據庫管理。將會使得圖書館系統(tǒng)極大限度的應用于現代化圖書管理中。第一章 圖書館管理系統(tǒng)分析1.1 需求分析圖書館管理系統(tǒng)是一個高度集成的圖書信

5、息處理系統(tǒng),通過將圖書館的各種功能進行整合,從而達到顯示檢索信息,提高工作效率,降低管理成本等目的。一個典型的圖書館管理系統(tǒng)應該能夠管理所有的圖書種類,圖書信息以及讀者信息,還需要提供各種圖書信息的檢索查詢功能。該系統(tǒng)還需要能夠對圖書的借閱,歸還進行管理,并對讀者的罰款進行自動計算。通過該系統(tǒng)的自動化管理,能夠大大減少圖書館管理人員,還能減少管理人員的工作任務,從而降低管理開銷和成本。一個完整的圖書館管理系統(tǒng)包括前臺和后臺,前臺主要是顯示在計算機屏幕上的顯示界面,有各種指令按鈕,操作框以及文本框,后臺主要是為前臺的一些操作提供一些必要的數據,也就是一個相對于系統(tǒng)比較完整的數據庫,操作員以及各類

6、圖書的信息,借書者的信息等等。一個最基本的圖書館管理系統(tǒng)要有如下幾個重要功能:(1) 用戶在借書超期的情況下得到來自管理員的提醒。(2) 管理員可以方便進行圖書管理,用戶管理,管理員管理。圖書管理包括圖書信息以及圖書分類的添加,修改,刪除。用戶管理包括用戶信息的添加,刪除,修改。管理員管理包括管理員信息的添加,刪除,修改等。(3) 用戶和管理員可以修改自己的密碼,修改前需先核實自己的原始密碼。(4) 未注冊用戶(游客)也可以瀏覽所有的圖書信息和分類信息,但是無法借閱。 (5)實現模糊查詢,使用戶得到更多的相關記錄。并且考慮使用的方便性,一些經常使用的輸入無須用戶輸入,比如進行圖書查詢時圖書分類

7、只須用戶做選擇就可以。 (6)考慮程序執(zhí)行操作時可能出現的情況,比如刪除圖書分類時該分類下存在圖書,程序自動跳轉該分類圖書查看。刪除某個用戶,如果存在借書記錄則不允許刪除,跳轉到該用戶的借書記錄。等待管理員確認該用戶所借圖書已經全部歸還之后才允許刪除該用戶信息。一個圖書館管理系統(tǒng)要是能實現以上的各種功能,那么這個圖書館管理系統(tǒng)也就算是比較成功的一個系統(tǒng)了。1.2 功能分析 根據以上需求分析,我所設計的圖書館管理系統(tǒng)有6個功能模塊,分別是圖書類別管理模塊,圖書信息管理模塊,讀者信息管理模塊,新書訂購管理模塊,圖書借閱模塊以及系統(tǒng)維護模塊。其中各功能模塊的具體說明如下:圖書類別管理模塊:該模塊主要

8、負責管理圖書館的圖書種類信息,如圖書種類的名稱、可借天數、罰款數目等信息。圖書信息管理模塊:該模塊主要負責管理圖書館的圖書信息,如圖書編號、圖書名稱、作者、出版社等信息。讀者信息管理模塊:該模塊主要負責管理圖書館的讀者信息,如讀者編號、讀者信息、證件號碼、最大借書量等信息。圖書訂購管理模塊:該模塊主要負責管理圖書館的新書訂購信息、包括新書訂購和驗收新書兩個子模塊。圖書借閱管理模塊:該模塊主要負責圖書館的書籍借閱和歸還信息,包括圖書借閱、圖書歸還、圖書搜索3個子模塊。系統(tǒng)維護模塊:該模塊主要負責圖書館的工作人員信息,包括用戶管理和更改系統(tǒng)口令兩個子模塊。1.3 系統(tǒng)用例圖設計圖書館管理系統(tǒng)是一個

9、內部人員使用的系統(tǒng),也就是說不是所有的人都能夠使用它,只有圖書館的工作人員才能使用。而圖書館的工作人員也分為兩類,一類是操作人員,主要負責圖書的借閱和歸還的工作;一類是管理員,除了操作人員的所有功能外,還能夠對書籍列表,書籍信息,讀者信息等進行管理。下面以管理員為例繪制其所對應的用例圖如圖1.1所示。 圖1.1 管理員用例圖1.4 繪制系統(tǒng)流程圖本系統(tǒng)首先需要對用戶的身份進行識別,只有合法的用戶才能進入系統(tǒng),否則將無法進入系統(tǒng)。進入系統(tǒng)后,首先打開系統(tǒng)主窗體,在系統(tǒng)首頁的菜單欄或者功能區(qū)可以選擇各種導航鏈接來進行各種操作。由于不同權限的用戶對于系統(tǒng)有不同的功能,下面以功能最多的管理員為例,其系

10、統(tǒng)流程圖如圖1.2所示。圖1.2 系統(tǒng)流程圖1.5 系統(tǒng)的開發(fā)環(huán)境圖書館管理系統(tǒng)的具體開發(fā)環(huán)境要求如下:(1) 系統(tǒng)開發(fā)平臺:eclipse 3.4。(2) 數據庫管理系統(tǒng)軟件:sql server 2005。(3) 運行平臺:windows 7。(4) java開發(fā)包:jdk 5.0以上。(5) 分辨率:800600以上。(6) gui開發(fā)包:swing。第二章 數據庫分析與設計2.1 數據庫分析在開發(fā)圖書館管理系統(tǒng)時,考慮到圖書量大,數據庫維護大的特點,選用sql server 2005作為數據庫管理系統(tǒng)。在sql server 2005中新增一個數據庫,其數據庫名為db_library。

11、數據庫中可以包含圖書信息、圖書類別信息、圖書借閱信息、操作員信息、圖書訂購信息及讀者信息等實體,用來存儲不同的信息。2.2 數據庫概念設計本系統(tǒng)一共設計規(guī)劃出6個實體,分別是圖書類別信息實體、圖書信息實體、讀者信息實體、操作員實體、圖書借閱信息實體以及圖書訂購信息實體。圖書的類別有很多,因此可以建立一個圖書館類別信息表,專門用來保存圖書的類別信息。同時因為每種類別的書籍閱讀時間有所不同,所以需要在類別表中保存該類別可借天數信息。圖書類別信息實體e-r圖如圖2.1所示。圖2.1 圖書類別信息實體e-r圖對于圖書館來說最重要的就是要管理其下的書籍,所以需要建立一個圖書信息表,用來保存圖書的所有信息

12、。圖書信息實體e-r圖如圖2.2所示。圖2.2 圖書信息實體e-r圖要想在圖書館借書首先需要進行登記并交付押金。領取讀書卡才能借書。所以需要建立一個讀者信息表來保存圖書館的所有讀者的登記信息。讀者信息實體e-r圖如圖2.3所示。圖2.3 讀者信息實體e-r圖圖書館里一般有一個以上的系統(tǒng)操作員,需要建立一個操作員信息表,用來保存操作員的身份信息。操作員信息實體e-r圖如圖2.4所示。圖2.4 操作員信息實體e-r圖圖書館最大的功能就是能夠借書,這時需要建立一個圖書借閱信息表,用來保存讀者的借書信息。圖書的借閱信息實體e-r圖如圖2.5所示。圖2.5 圖書的借閱信息實體e-r圖圖書館除了借書,還需

13、要到出版社或其他代理商訂購新書,這是需要建立一個圖書訂購信息表,用來保存所有的訂購信息。圖書訂購信息實體e-r圖如圖2.6所示。圖2.6 圖書訂購信息實體e-r圖2.3 數據邏輯結構設計根據設計好的各實體e-r圖創(chuàng)建數據庫的邏輯結構,數據庫各表的結構如下: (1)圖書類別信息采表用來儲存所有的圖書類別信息,包括圖書類別編號、圖書類別名稱、可借天數以及遲還一天的罰款數目4個字段。該表的邏輯結構如表2.1所示。表2.1 圖書類別信息表字 段 名數 據 類 型是 否 主 鍵描 述id整數(int)是圖書類別編號typename文本(varchar)否圖書類別名稱days整數(int)否可借天數fk浮

14、點數否遲還一天的罰款數目 (2)圖書信息表用來儲存所有的圖書信息,包括圖書編號、類別編號、圖書名稱、作者、譯者、出版社、出版日期以及書籍價格8個字段。該表的邏輯結構如表2.2所示。表2.2 圖書信息表字 段 名數 據 類 型是 否 主 鍵描 述isbn文本(varchar)是圖書編號typeid整數(int)否(外鍵)類別編號bookname文本(varchar)否圖書名稱writer文本(varchar)否作者translator文本(varchar)否譯者publisher文本(varchar)否出版社date日期時間(datetime)否出版日期price金錢貨幣(money)否書籍價格

15、(3)讀者信息表用來儲存所有的讀者信息,包括讀者姓名、性別、年齡、證件號碼、會員證有效日期、最大借書量、電話號碼、押金、證件類型、職業(yè)、讀者編號以及辦證日期12個字段。該表的邏輯結構如表2.3所示。表2.3 讀者信息表字 段 名數 據 類 型是 否 主 鍵描 述name文本(varchar)是讀者姓名sex文本(varchar)否(外鍵)讀者性別age整數(int)否讀者年齡identitycard文本(varchar)否證件號碼date日期時間(datetime)否會員證有效日期maxnum整數(int)否最大借書量tel文本(varchar)否電話號碼keepmoney金錢貨幣(money

16、)否押金zj整數(int)否證件類型zy文本(varchar)否職業(yè)isbn文本(varchar)是讀者編號bztime日期時間(datetime)否辦證日期 (4)操作員信息表用來保存操作員信息,包括操作員編號、用戶名、性別、年齡、證件號碼、工作時間、電話號碼、是否為管理員、密碼9個字段。該表的邏輯結構如表2.4所示。表2.4 操作員信息表字 段 名數 據 類 型是 否 主 鍵描 述id整數(int)是(自動遞增)操作員編號name文本(varchar)否用戶名sex文本(varchar)否性別age整數(int)否年齡identitycard文本(varchar)否證件號碼workdate

17、日期時間(datetime)否工作時間tel文本(varchar)否電話號碼admin整數(int)否是否為管理員password文本(varchar)否密碼 (5)圖書借閱信息表用來保存所有圖書的借閱信息,包括借閱編號、書籍編號、操作員編號、讀者編號、是夠歸還、借書日期以及應還日期7字段。該表的邏輯結構如表2.5所示。表2.5 圖書借閱信息表字 段 名數 據 類 型是 否 主 鍵描 述id整數(int)是(自動遞增)借閱編號bookisbn文本(varchar)否(外鍵)書籍編號operatorid整數(int)否(外鍵)操作員編號readerisbn文本(varchar)否(外鍵)讀者編號

18、isback整數(int)否是否歸還borrowdate日期時間(datetime)否借書日期backdate日期時間(datetime)否應還日期 (6)圖書訂購信息表用來保存圖書館的所有訂購信息,包括書籍編號、訂購日期、訂購數量、操作員、是否驗收以及書籍折扣6個字段。該表的邏輯結構如表2.6所示。表2.6 圖書訂購信息表字 段 名數 據 類 型是 否 主 鍵描 述isbn文本(varchar)是書籍編號date日期時間(datetime)否訂購日期number整數(int)否訂購數量operator文本(varchar)否操作員checkandaccept整數(int)否是否驗收zk浮點否

19、書籍折扣2.4 各表之間的聯(lián)系圖各表間的聯(lián)系圖如圖2.7所示。圖2.7 各表間聯(lián)系圖第三章 系統(tǒng)設計與功能實現3.1 數據庫dao類的構建首先定義了一個類dao,并為該類添加了4中方法,分別是構造方法dao、查詢方法executequery、更新方法executeupdate以及關閉連接方法close。public class dao protected static string dbclassname = com.microsoft.sqlserver.jdbc.sqlserverdriver;/數據庫連接驅動類protected static string dburl = jdbc:sq

20、lserver:/localhost:1433;+ databasename=db_library;/數據庫連接urlprotected static string dbuser = sa;/數據庫用戶名protected static string dbpwd = 123;/數據庫密碼private static connection conn = null;/數據庫連接對象private static string isbn;private dao() /構造方法 try if (conn = null) /如果連接對象為空 class.forname(dbclassname);/加載驅動

21、類 conn = drivermanager.getconnection(dburl, dbuser, dbpwd);/獲得連接對象 catch (exception ee) ee.printstacktrace();private static resultset executequery(string sql) /查詢方法 try if(conn=null) new dao(); /如果連接對象為空,則重新調用構造方法 return conn.createstatement(resultset.type_scroll_sensitive,resultset.concur_updatable

22、).executequery(sql);/執(zhí)行查詢 catch (sqlexception e) e.printstacktrace(); return null;/返回null值 finally private static int executeupdate(string sql) /更新方法 try if(conn=null) new dao();/如果連接對象為空,則重新調用構造方法 return conn.createstatement().executeupdate(sql);/執(zhí)行更新 catch (sqlexception e) e.printstacktrace(); ret

23、urn -1; finally public static void close() /關閉方法 try conn.close();/關閉連接對象 catch (sqlexception e) e.printstacktrace(); finally conn = null;/設置連接對象為null值 3.2 系統(tǒng)登錄模塊 對于圖書館管理系統(tǒng)而言,不是所有的用戶都是可以使用的,所有需要添加一個登陸模塊。通過該模塊來對用戶的合法性進行判斷,只有合法的用戶才能進入到系統(tǒng)。整個登陸模塊的實現非常簡單,相信讀者能夠快速掌握其開發(fā)過程。登錄模塊的運行結果如圖3.1所示。圖3.1 系統(tǒng)登錄界面3.2.1

24、登陸窗體界面設計與實現 登陸窗體的界面設計我依然采用的是比較傳統(tǒng)的方法,新建一個類bookloginframe類,用來顯示登錄窗體。在該窗體中需要使用到四類控件,分別是jlabel、jtextfieid、jpasswordfield以及jbutton。其中控件jlabel是用來顯示頂部的圖片以及標簽文本;控件jtextfieid用來接收用戶名輸入信息;控件jpasswordfield用來接收密碼輸入信息;控件jbutton用來創(chuàng)建登陸和重置按鈕。3.2.2 操作員登陸在dao類中新增一個方法check,通過該方法來檢測用戶信息是否合法。該方法接收兩個參數,分別是操作員用戶名name,操作員密碼

25、passsward。主要方法如下:public static operater check(string name, string password) operater operater=new operater();/操作員信息對象string sql = select * from tb_operator where name= + name+ and password= + password + and admin=1;resultset rs = dao.executequery(sql);try while (rs.next() operater.setid(rs.getstring

26、(id);operater.setname(rs.getstring(name);operater.setgrade(rs.getstring(admin);operater.setpassword(rs.getstring(password); 3.3 主窗體模塊圖書館管理系統(tǒng)的主窗體模式是由三個部分組成的。第一部分是位于主窗體上組上端的系統(tǒng)菜單欄,用來實現鏈接系統(tǒng)功能菜單。第二部分位于菜單欄下面的工具欄,用來提供各種常用功能鏈接。第三部分位于工具下的系統(tǒng)功能窗口區(qū)域,主要用來顯示各種功能窗口。3.3.1 主窗體界面設計在主窗體中可以顯示其他功能窗體,所以需要在該窗體中加入一個桌面窗體。通過

27、將其他功能窗體加入到該窗體中。從而實現多窗體顯。同時在主窗口體中,還需要添加一個main方法,該方法為系統(tǒng)入口的方法,通過執(zhí)行該方法來執(zhí)行系統(tǒng)。其主要代碼如下: public class library extends jframe private static final jdesktoppane desktop_pane = new jdesktoppane();/桌面窗體public static void main(string args) try uimanager.setlookandfeel(uimanager .getsystemlookandfeelclassname();/

28、設置系統(tǒng)界面外觀 new bookloginiframe();/登錄窗口 catch (exception ex) ex.printstacktrace(); public static void addifame(jinternalframe iframe) / 添加子窗體的方法desktop_pane.add(iframe);/新增子窗體下面再來配置主窗體的其他屬性,首先需要設置其大小和位置,然后還要設置其菜單欄和工具欄,最后需要在桌面窗體中添加一個背景圖片。其代碼實現如下。public library() super();setdefaultcloseoperation(windowco

29、nstants.exit_on_close);/設置關閉按鈕處理事件toolkit tool = toolkit.getdefaulttoolkit();/獲得默認的工具箱dimension screensize = tool.getscreensize();/獲得屏幕的大小setsize(800, 600);/設置窗體大小setlocation(screensize.width - getwidth() / 2,(screensize.height - getheight() / 2);/設置窗體位置settitle(圖書館管理系統(tǒng));/設置窗體標題jmenubar menubar = cr

30、eatemenu(); /調用創(chuàng)建菜單欄的方法setjmenubar(menubar);/設置菜單欄jtoolbar toolbar = createtoolbar(); / 調用創(chuàng)建工具欄的方法getcontentpane().add(toolbar, borderlayout.north);/設置工具欄final jlabel label = new jlabel();/創(chuàng)建一個標簽,用來顯示圖片label.setbounds(0, 0, 0, 0);/設置窗體的大小和位置label.seticon(null); / 窗體背景desktop_pane.addcomponentlistene

31、r(new componentadapter() public void componentresized(final componentevent e) dimension size = e.getcomponent().getsize();/獲得組件大小label.setsize(e.getcomponent().getsize();/設置標簽大小label.settext();/設置標簽文本;desktop_pane.add(label,new integer(integer.min_value);/將標簽添加到桌面窗體getcontentpane().add(desktop_pane)

32、;/將桌面窗體添加到主窗體中3.3.2 主窗體菜單欄設計 在library類中定義一個createmenu方法,在該方法中實現菜單欄的設計。其運行界面如圖3.2所示。圖3.2 主窗體界面3.4 圖書類別管理模塊圖書類別管理模塊包含兩個子模塊,分別是圖書類別添加和圖書類別修改。其中圖書類別添加模塊用來錄入新的圖書類別信息,圖書列別修改模塊用來修改已有的圖書列別信息。系統(tǒng)界面如圖3.3所示。圖3.3 圖書類別修改界面3.4.1 圖書類別添加模塊要添加圖書類別信息,首先要在dao中添加一個insertbooktype方法,通過該方法來接受用戶輸入的所有書籍類別信息,然后執(zhí)行插入操作。其主要方法如下:

33、public static int insertbooktype(string booktypename,string days,double fk) int i=0;trystring sql=insert intotb_booktype(typename,days,fk)values(+booktypename+,+days+,+fk+); i=dao.executeupdate(sql);/執(zhí)行插入操作 3.4.2 圖書類別修改模塊修改圖書類別信息同保存圖書類別信息非常類似,首先在dao中添加一個方法updatebooktype。通過該方法來接收圖書修改表單中提交的書籍類別信息。其代碼如

34、下:public static int updatebooktype(string id,string typename,string days,string fk)int i=0;trystring sql=update tb_booktype set typename=+typename+,days=+days+,fk=+fk+ where id=+id+;/system.out.println(sql); i=dao.executeupdate(sql);/執(zhí)行更新操作 修改圖書類別信息,是通過單擊修改按鈕執(zhí)行的,上面我們已經為修改按鈕注冊了一個監(jiān)聽器,其對應的監(jiān)聽器類為buttonac

35、tionlinter。下面來實現該監(jiān)聽器類,其實現代碼如下:class buttonaddlistener implements actionlistenerpublic void actionperformed(actionevent e)object selecteditem = booktypemodel.getselecteditem();int i=dao.updatebooktype(booktypeid.gettext().trim(),selecteditem.tostring(), days.gettext().trim(),fk.gettext().trim();syste

36、m.out.println(i);if(i=1)/如果返回值為1,則表示修改成功joptionpane.showmessagedialog(null, 修改成功);object results=getfilestates(dao.selectbookcategory();model.setdatavector(results,columnnames);table.setmodel(model); 3.5 圖書信息管理模塊圖書信息管理模塊包含兩個子模塊,分別是圖書信息添加和圖書信息修改。其中圖書信息添加模塊用來錄入新的圖書信息,圖書信息修改模塊用來修改已有的圖書信息。3.5.1 圖書信息添加界面

37、設計圖書信息添加窗體一共包含三個部分,第一部分是位于窗體最上端的圖片。第二部分是位于中間的主面板,用來提供各種標簽和表單元素。第三部分是位于主面板下的按鈕面板,用來提供添加和關閉兩個按鈕。其運行界面如圖3.4所示。圖3.4 圖書信息添加界面主面板是整個窗體最重要也是最核心的部分,其部分實現代碼如下:public bookaddiframe() super();final borderlayout borderlayout = new borderlayout();/創(chuàng)建邊框布局管理器getcontentpane().setlayout(borderlayout);/設置布局seticonifi

38、able(true);/ 設置窗體可最小化setclosable(true);/ 設置窗體可關閉settitle(圖書信息添加);/ 設置窗體標題setbounds(100, 100, 396, 260);/ 設置窗體位置和大小final jpanel mainpanel = new jpanel();/創(chuàng)建中心面板mainpanel.setborder(new emptyborder(5, 10, 5, 10);/設置邊框final gridlayout gridlayout = new gridlayout(0, 4);/創(chuàng)建表格布局管理器gridlayout.setvgap(5);/設置

39、組件之間垂直距離gridlayout.sethgap(5);/設置組件之間平行距離mainpanel.setlayout(gridlayout);/設置布局getcontentpane().add(mainpanel);/將中心面板加入到窗體final jlabel isbnlabel = new jlabel();/創(chuàng)建圖書編號標簽isbnlabel.settext(圖書編號:);/設置標簽文本mainpanel.add(isbnlabel);/添加到中心面板isbn = new jtextfield(請輸入13位書號,13);/創(chuàng)建書號文本框isbn.setdocument(new myd

40、ocument(13); /設置書號文本框最大輸入值為13isbn.setcolumns(13);/設置文本框長度isbn.addkeylistener(new isbnkeylistener();/注冊監(jiān)聽器isbn.addfocuslistener(new isbnfocuslistener();/注冊監(jiān)聽器mainpanel.add(isbn); 3.5.2 檢測書籍編號是否已存在因為不可能存在重復的書籍編號。為了防止操作員的操作錯誤,所以需要提供一個書籍編號監(jiān)測系統(tǒng)。如果該書籍號已存在,則不能進行添加,否則可以進行添加。要檢測書籍編號是否存在,需要在dao類中添加一個方法,該方法用來接

41、收輸入的書籍編號,然后查詢該書籍編號對應的書籍記錄,其主要方法如下:public static list selectbookinfo(string isbn) /根據圖書編號查詢圖書list list=new arraylist();/保存所有查詢到的書籍信息string sql = select * from tb_bookinfo where isbn=+isbn+;resultset rs = dao.executequery(sql);/執(zhí)行查詢/插入數據,關閉連接對書籍編號進行檢測,一般是在操作員輸入完書籍編號,并準備輸入其他信息時來完成。這是需要新建一個isbnffocuslis

42、tener監(jiān)聽類,該類繼承了focusadoper類,并實現其中的focuslost,其實現代碼如下:class isbnfocuslistener extends focusadapter public void focuslost(focusevent e)if(!dao.selectbookinfo(isbn.gettext().trim().isempty()joptionpane.showmessagedialog(null, 添加書號重復!);return;3.5.3 圖書信息添加 要添加書籍信息,首先要在dao中添加一個insertbook方法,通過該方法來接受用戶輸入的所有書籍

43、信息,然后執(zhí)行插入操作。其主要方法如下:public static int insertbook(string isbn,string typeid,string bookname,string writer,string translator,string publisher,date date,double price)int i=0;trystring sql=insert into tb_bookinfo(isbn,typeid,bookname,writer,translator,+publisher,date,price) values(+isbn+,+typeid+,+bookn

44、ame+,+ +writer+,+translator+,+publisher+,+date+,+price+); i=dao.executeupdate(sql);/執(zhí)行插入操作 3.5.4 圖書修改信息 修改圖書信息同保存圖書信息非常類似,首先在dao中添加一個方法updatebook。通過該方法來接收圖書修改表單中提交的書籍信息。其代碼如下:public static int updatebook(string isbn,string typeid,string bookname,string writer,string translator,string publisher,date

45、date,double price)int i=0;/更新記錄數trystring sql=update tb_bookinfo set isbn=+isbn+ , typeid=+typeid+,bookname=+bookname+,writer=+writer+,translator=+translator+, publisher=+publisher+,date=+date+, price=+price+ where isbn=+isbn+;i=dao.executeupdate(sql);/執(zhí)行更新修改圖書信息,是通過單擊修改按鈕執(zhí)行的,上面我們已經為修改按鈕注冊了一個監(jiān)聽器,其對應

46、的監(jiān)聽器類為updatebookactionlinter。下面來實現該監(jiān)聽器類,其實現代碼如下:class updatebookactionlistener implements actionlistener public void actionperformed(final actionevent e) int i=dao.updatebook(isbns, booktypes, booknames, writer, translators,publishers,date.valueof(pubdates),double.parsedouble(prices);if(i=1)/如果返回更新記

47、錄數為1,表示修改成功joptionpane.showmessagedialog(null, 修改成功);objectresults=getfilestates(dao.selectbookinfo();/重新獲得書籍信息defaulttablemodel model=new defaulttablemodel();/獲得表格模型table.setmodel(model);/設置表格模型model.setdatavector(results, columnnames);/設置模型數據和列名 3.6 讀者信息管理模塊讀者信息管理模塊包含兩個子模塊,分別是讀者信息添加和讀者信息修改與刪除。其中讀者

48、信息添加模塊用來錄入新的讀者信息,讀者信息修改與刪除模塊用來修改和刪除已有的讀者信息。其系統(tǒng)運行界面如圖3.5所示。圖3.5 讀者信息管理模塊運行界面3.6.1 讀者信息添加要添加讀者信息,首先要在dao中添加一個insertreader方法,通過該方法來接受用戶輸入的所有讀者信息,然后執(zhí)行插入操作。其主要方法如下: public static int insertreader(string name,string sex,string age,string identitycard,date date,string maxnum,string tel,double keepmoney,str

49、ing zj,string zy,date bztime,string isbn)int i=0;trystring sql=insert into tb_reader(name,sex,age,identitycard,date,maxnum,tel,keepmoney,zj,zy,bztime,isbn)values(+name+,+sex+,+age+,+identitycard+,+date+,+maxnum+,+tel+,+keepmoney+,+zj+,+zy+,+bztime+,+isbn+); system.out.println(sql); i=dao.executeupda

50、te(sql);/執(zhí)行插入操作 3.6.2 讀者信息修改與刪除修改與刪除讀者信息同保存讀者信息非常類似,首先在dao中添加兩個方法updatereader及delreader。通過這兩個方法來接收圖讀者修改表單中提交的讀者信息。其主要代碼如下:public static int updatereader(string id,string name,string sex,string age,string identitycard,date date,string maxnum,string tel,double keepmoney,string zj,string zy,date bztime,string isbn)int i=0;trystring sql=update tb_reader set name=+name+,sex

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論