版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 數(shù)據(jù)庫系統(tǒng)原理</b></p><p><b> 課程設(shè)計報告</b></p><p> 題 目: </p><p> 學(xué) 院: </p><p> 專 業(yè):
2、 </p><p> 學(xué)生姓名: </p><p> 學(xué) 號: </p><p> 指導(dǎo)教師: </p><p><b> 年 月 日</b></p><p>
3、<b> 摘 要</b></p><p> 如今的圖書館早已不像以前通過手工記錄來登記圖書、讀者以及借閱信息了,互聯(lián)網(wǎng)的飛速發(fā)展實現(xiàn)了圖書管理的信息化。</p><p> 在本文的開始部分介紹了圖書管理信息系統(tǒng)的設(shè)計背景,然后闡述了圖書信息管理系統(tǒng)的需求和總體設(shè)計方案,較具體的論述了系統(tǒng)的詳細(xì)設(shè)計和實現(xiàn)過程。</p><p> 該系統(tǒng)
4、是在Win7系統(tǒng)下,以關(guān)系型數(shù)據(jù)庫MySql為數(shù)據(jù)庫開發(fā)管理軟件,Java編程技術(shù)開發(fā)的圖書管理信息系統(tǒng)。</p><p> 該系統(tǒng)主要包括基礎(chǔ)維護(hù)模塊、借閱模塊、查詢管理模塊、統(tǒng)計模塊等其他功能模塊。用戶界面設(shè)計方面所利用的是Java編程技術(shù)。后臺數(shù)據(jù)庫選用的則是MySql關(guān)系型數(shù)據(jù)庫。</p><p> 關(guān)鍵詞:圖書管理;Java;數(shù)據(jù)庫</p><p>&
5、lt;b> 目 錄</b></p><p><b> 引言1</b></p><p> 1 程序開發(fā)的技術(shù)基礎(chǔ)2</p><p> 1.1 Java技術(shù)2</p><p> 1.2 數(shù)據(jù)庫原理3</p><p> 2 圖書管理信息系統(tǒng)需求分析4&l
6、t;/p><p> 2.1 系統(tǒng)目標(biāo)4</p><p> 2.2 需求概述4</p><p> 2.3 系統(tǒng)功能分析4</p><p> 2.4 系統(tǒng)的需求分析5</p><p> 2.4.1設(shè)計分析5</p><p> 2.4.2數(shù)據(jù)庫需求分析5</p>&l
7、t;p> 3 圖書管理系統(tǒng)的設(shè)計6</p><p> 3.1 系統(tǒng)功能模塊設(shè)計6</p><p> 3.1.1系統(tǒng)功能模塊設(shè)計6</p><p> 3.1.2系統(tǒng)功能模塊結(jié)構(gòu)圖6</p><p> 3.2 系統(tǒng)數(shù)據(jù)庫設(shè)計7</p><p> 3.2.1數(shù)據(jù)流圖7</p>&
8、lt;p> 3.2.2數(shù)據(jù)存儲詞條描述9</p><p> 3.3 用戶界面設(shè)計11</p><p> 3.3.1輸入設(shè)計11</p><p> 3.3.2輸出設(shè)計12</p><p> 4 圖書管理信息系統(tǒng)的實現(xiàn)12</p><p> 4.1 開發(fā)環(huán)境的構(gòu)建12</p>
9、<p> 4.2 系統(tǒng)工程目錄12</p><p> 4.3 公共模塊13</p><p> 4.3.1 db包13</p><p> 4.3.2 util包15</p><p> 4.4 功能模塊的實現(xiàn)16</p><p> 4.4.1登錄模塊相關(guān)16</p><
10、p> 4.4.2基礎(chǔ)維護(hù)模塊相關(guān)17</p><p> 4.4.3借閱模塊相關(guān)18</p><p> 4.4.4查詢管理模塊相關(guān)20</p><p> 4.4.5統(tǒng)計模塊相關(guān)21</p><p> 4.4.6系統(tǒng)管理模塊相關(guān)21</p><p><b> 5 結(jié)論23</
11、b></p><p><b> 參考文獻(xiàn)24</b></p><p><b> 引言 </b></p><p> 21世紀(jì)后我們進(jìn)入了一個高速發(fā)展的信息化時代,在各行各業(yè)中離不開信息處理,這正是計算機(jī)網(wǎng)絡(luò)被廣泛應(yīng)用于管理信息系統(tǒng)的外部原因。計算機(jī)的好處在于它能對信息數(shù)據(jù)進(jìn)行高速、安全的處理,尤其對于復(fù)雜的信
12、息管理,計算機(jī)能夠充分發(fā)揮它的優(yōu)越性。</p><p> 圖書館作為一種信息資源的集聚地,圖書、用戶與借閱資料繁多,包含很多信息數(shù)據(jù)的管理,圖書管理是一項非常重要的內(nèi)容。隨著圖書數(shù)量的增加。采用傳統(tǒng)的手工圖書管理方式,管理過程繁瑣而復(fù)雜,執(zhí)行效率低,并且容易出錯。在這種情況下,就需要開發(fā)一套圖書管理系統(tǒng)來提高圖書管理工作的效率和質(zhì)量。</p><p> 1 程序開發(fā)的技術(shù)基礎(chǔ)<
13、/p><p> 1.1 Java技術(shù)</p><p> Java是一種可以撰寫跨平臺應(yīng)用程序的面向?qū)ο蟮某绦蛟O(shè)計語言。它繼承了 C++語言面向?qū)ο蠹夹g(shù)的核心。Java舍棄了C語言中容易引起錯誤的指針(以引用取代)、運算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔(dān)
14、憂。在 Java 1.5 版本中,Java 又引入了泛型編程(Generic Programming)、類型安全的枚舉、不定長參數(shù)和自動裝/拆箱等語言特性。</p><p> Java不同于一般的編譯執(zhí)行計算機(jī)語言和解釋執(zhí)行計算機(jī)語言。它首先將源代碼編譯成二進(jìn)制字節(jié)碼(bytecode),然后依賴各種不同平臺上的虛擬機(jī)來解釋執(zhí)行字節(jié)碼。從而實現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺特性。不過,每次的執(zhí)行編譯后的字節(jié)碼
15、需要消耗一定的時間,這同時也在一定程度上降低了 Java 程序的性能。</p><p> Java語言的優(yōu)良特性使得Java應(yīng)用具有無比的健壯性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護(hù)費用。Java對對象技術(shù)的全面支持和Java平臺內(nèi)嵌的API能縮短應(yīng)用系統(tǒng)的開發(fā)時間并降低成本。Java的編譯一次,到處可運行的特性使得它能夠提供一個隨處可用的開放結(jié)構(gòu)和在多平臺之間傳遞信息的低成本方式。特別是Java企業(yè)應(yīng)用編程接口(
16、Java Enterprise APIs)為企業(yè)計算及電子商務(wù)應(yīng)用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類庫。</p><p><b> 1.2 數(shù)據(jù)庫原理</b></p><p> 數(shù)據(jù)庫是數(shù)據(jù)管理的一個領(lǐng)域,是計算機(jī)科學(xué)技術(shù)的一個重要子科學(xué)。如今信息資源已成為各個部門、組織的一筆財富。建立一個滿足各級部門信息處理要求的行之有效的信息系統(tǒng)就成為了一個企業(yè)、事業(yè)單位、政府部門
17、或其他社會組織生存和發(fā)展的重要條件。因此,作為信息系統(tǒng)核心和基礎(chǔ)的數(shù)據(jù)庫得到了越來越深遠(yuǎn)的運用。</p><p> MySQL 是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。MySQL 所使用的 SQL 語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網(wǎng)站的開發(fā)都選擇
18、MySQL 作為網(wǎng)站數(shù)據(jù)庫。由于其社區(qū)版的性能卓越,搭配各種編程語言可組成良好的開發(fā)環(huán)境。</p><p> 2 圖書管理信息系統(tǒng)需求分析</p><p><b> 2.1 系統(tǒng)目標(biāo)</b></p><p> 圖書管理信息系統(tǒng)是典型的信息管理系統(tǒng),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立以及前端應(yīng)用程序的開發(fā)兩個方面。對于前者要求建立數(shù)據(jù)一致性與
19、完整性強(qiáng),數(shù)據(jù)安全性好的庫。對于后者則要求應(yīng)用程序功能完備,容易使用等特點。</p><p> 系統(tǒng)開發(fā)的總體目標(biāo)就是實現(xiàn)各種信息的系統(tǒng)化、規(guī)范化和自動化。</p><p><b> 2.2 需求概述</b></p><p> 在圖書管理系統(tǒng)中,管理員為每個讀者建立一個賬戶,賬戶內(nèi)存儲讀者個人的詳細(xì)信息,并依據(jù)讀者類別的不同給每個讀者發(fā)放
20、借書卡(提供借書卡號、姓名、讀者分類等信息)。讀者可以憑借書卡號在圖書館進(jìn)行圖書查詢、密碼的修改以及個人信息查詢等操作,不同類別的讀者在借書數(shù)量、還書期限上可以有所不同。</p><p> 借閱圖書時,由管理員錄入借書卡號,系統(tǒng)首先驗證該卡號的有效性,若有效,則顯示卡號、姓名、已借數(shù)量等信息,實際借書的數(shù)量不能超出總借書數(shù)量的值。完成借書操作的同時要修改相應(yīng)圖書信息的狀態(tài)、讀者信息中的借書數(shù)量、在借閱信息中添加
21、相應(yīng)的記錄。</p><p> 歸還圖書時,由管理員錄入借書卡號和待歸還的圖書編號,顯示借書卡號、讀者姓名、圖書編號、圖書名稱、借書日期、應(yīng)還日期等信息。完成歸還操作的同時,修改相應(yīng)圖書信息的狀態(tài)、修改讀者信息中的已借數(shù)量、在借書信息中對相應(yīng)的借書記錄做歸還標(biāo)記。</p><p> 管理員不定期地對圖書信息進(jìn)行添加、修改和刪除等操作。也可以對讀者信息進(jìn)行添加、修改、刪除等操作。同時可以
22、對圖書以及借閱情況做分類統(tǒng)計。</p><p> 2.3 系統(tǒng)功能分析</p><p> 該系統(tǒng)主要具備以下功能:</p><p> 查詢功能:能夠列出當(dāng)前系統(tǒng)圖書目錄,讀者目錄以及借閱信息,并能夠按照需求對圖書與讀者進(jìn)行相應(yīng)的匹配查詢。</p><p> 增加功能:能夠?qū)D書與讀者信息進(jìn)行添加。</p><p&g
23、t; 修改功能:能夠?qū)?shù)據(jù)庫中已存在的讀者與圖書信息進(jìn)行修改,以及對賬戶的密碼進(jìn)行修改。</p><p> 刪除功能:能夠?qū)?shù)據(jù)庫中已存在的讀者與圖書信息進(jìn)行刪除。</p><p> 統(tǒng)計功能:能夠?qū)D書與讀者信息按需求進(jìn)行分類統(tǒng)計。</p><p> 2.4 系統(tǒng)的需求分析</p><p><b> 2.4.1設(shè)計分析&
24、lt;/b></p><p> 此管理軟件使用Java語言進(jìn)行開發(fā),可粗略的劃分為前臺和后臺部分。前臺部分主要的是人機(jī)交互的界面,遵照一定的界面設(shè)計一般原則,針對不同的用戶給予差別化的用戶體驗。后臺部分主要是底層數(shù)據(jù)間的相互傳遞,調(diào)用Java中封裝好的不同類去實現(xiàn)用戶的需求。</p><p> 2.4.2數(shù)據(jù)庫需求分析</p><p> 為了對數(shù)據(jù)進(jìn)行統(tǒng)
25、一的管理與維護(hù),以確保數(shù)據(jù)的完整性與安全性,我在這里選擇的是一種關(guān)系數(shù)據(jù)庫MySql,它的規(guī)模較小、體積較小、速度較快而且相對成本低,最主要是MySql提供的功能已經(jīng)足夠滿足圖書管理系信息系統(tǒng)軟件的使用了。</p><p><b> 圖2-1 ER圖</b></p><p> 圖書的入庫需要管理員的登記,登記后的圖書才能被讀者進(jìn)行借閱,讀者的可借閱數(shù)量有限定,并且
26、在借書時自動生成借書與還書時間。管理員也可以對讀者進(jìn)行管理,主要體現(xiàn)在對讀者的增加與讀者信息的更新與刪除上。</p><p> 整個功能至少需要以下數(shù)據(jù)項:</p><p> 圖書:圖書編號、isbn號、圖書名稱、圖書類型、作者、譯者、出版社、出版日期、庫存數(shù)量、價格、在館狀態(tài)</p><p> 讀者:讀者帳號、讀者姓名、讀者類型、性別、可借書數(shù)量、借閱時間長
27、度</p><p> 借還信息:編號、書籍編號、書籍名稱、借閱讀者帳號、借書日期、還書日期、是否歸還</p><p> 用戶:編號、帳戶名、密碼、是否管理員</p><p> 3 圖書管理系統(tǒng)的設(shè)計</p><p> 3.1 系統(tǒng)功能模塊設(shè)計</p><p> 3.1.1系統(tǒng)功能模塊設(shè)計</p>
28、<p> 通過需要實現(xiàn)的功能情況,把圖書管理系統(tǒng)軟件分成6個模塊來實現(xiàn)</p><p> 登錄模塊:這是程序的入口,用來判斷登錄的是讀者還是管理員,以及拒絕非系統(tǒng)用戶的登錄;</p><p> 基礎(chǔ)維護(hù)模塊:用來實現(xiàn)管理員對圖書以及讀者的信息管理。實現(xiàn)圖書與讀者信息的增刪改功能;</p><p> 借閱模塊:管理員可通過借閱模塊來實現(xiàn)讀者的借還
29、書需求;</p><p> 查詢管理模塊:該模塊主要用來實現(xiàn)管理員對圖書、讀者以及借閱情況的查詢,還能實現(xiàn)讀者對自己信息的查詢以及對自己借閱情況的查詢;</p><p> 統(tǒng)計模塊:用以實現(xiàn)管理員對圖書、讀者以及借閱情況的統(tǒng)計分析;</p><p> 系統(tǒng)管理模塊:用戶與管理員可通過該模塊來實現(xiàn)密碼的更新修改。</p><p> 3.
30、1.2系統(tǒng)功能模塊結(jié)構(gòu)圖</p><p> 圖3-1 系統(tǒng)功能模塊結(jié)構(gòu)圖</p><p> 3.2 系統(tǒng)數(shù)據(jù)庫設(shè)計</p><p><b> 3.2.1數(shù)據(jù)流圖</b></p><p><b> (1)0層數(shù)據(jù)流圖</b></p><p> 圖3-2 0層數(shù)據(jù)流圖
31、</p><p><b> (2)1層數(shù)據(jù)流圖</b></p><p><b> ①讀者信息管理</b></p><p> 圖3-3 1層數(shù)據(jù)流圖(1)</p><p><b> ?、趫D書信息管理</b></p><p> 圖3-4 1層數(shù)據(jù)流圖
32、(2)</p><p><b> ?、蹐D書借還管理</b></p><p> 圖3-5 1層數(shù)據(jù)流圖(3)</p><p> 3.2.2數(shù)據(jù)存儲詞條描述</p><p> 經(jīng)過認(rèn)真的系統(tǒng)需求分析后,確定圖書管理信息系統(tǒng)需要用到以下4張表:</p><p><b> (1)圖書信息
33、表</b></p><p> 表3-1 圖書信息表</p><p><b> (2)讀者信息表</b></p><p> 表3-2 讀者信息表</p><p><b> (3)借還信息表</b></p><p> 表3-3 借閱信息表</p>
34、<p><b> (4)用戶信息表</b></p><p> 表3-4 用戶信息表</p><p> 3.3 用戶界面設(shè)計</p><p> 用戶界面主要用于用戶與系統(tǒng)之間的交互,一個好的用戶界面能使用戶用戶清晰的明白操作邏輯,省去不必要的繁瑣重復(fù)操作,讓用戶以最簡單的步驟就能達(dá)到需求的實現(xiàn)。</p><
35、;p><b> 3.3.1輸入設(shè)計</b></p><p> 輸入設(shè)計是用戶與計算機(jī)系統(tǒng)管理軟件進(jìn)行傳遞交換數(shù)據(jù)信息的重要過程,本系統(tǒng)通過鍵盤的輸入以及鼠標(biāo)的點擊來實現(xiàn),具備清晰的提示,保證輸入數(shù)據(jù)類型的正確性,讓用戶能用簡單的輸入就能達(dá)到目的的實現(xiàn)</p><p><b> 3.3.2輸出設(shè)計</b></p><
36、p> 圖書管理系統(tǒng)用簡潔統(tǒng)一的界面風(fēng)格,讓用戶在第一時間就能清晰快速的獲取相應(yīng)的信息,同時輸出的信息可以復(fù)制,以便于用戶對獲取到的信息進(jìn)行保存以及與其他軟件如Word、Excel等進(jìn)行配合使用,從而達(dá)到更多的功能實現(xiàn)。</p><p> 4 圖書管理信息系統(tǒng)的實現(xiàn)</p><p> 4.1 開發(fā)環(huán)境的構(gòu)建</p><p> 本系統(tǒng)使用Java數(shù)據(jù)庫編
37、程實現(xiàn),所包含的數(shù)據(jù)量并不是很大,根據(jù)系統(tǒng)的實際情況,采用如下開發(fā)環(huán)境。</p><p> 操作系統(tǒng): Windows 7;</p><p> 數(shù)據(jù)庫系統(tǒng): MySql 5.6.24;</p><p> 編程語言: JDK 1.8.0;</p><p> 開發(fā)工具: Eclipse Mars Release (4.5.0)。</
38、p><p> 4.2 系統(tǒng)工程目錄</p><p> 在開發(fā)一個實際的應(yīng)用系統(tǒng)的時候,應(yīng)該規(guī)劃好系統(tǒng)工程的文件結(jié)構(gòu)。有規(guī)劃的工程文件結(jié)構(gòu)便于在開發(fā)過程中進(jìn)行管理,也使得開發(fā)工作的內(nèi)容更加的清晰。在Eclipse開發(fā)環(huán)境下,本系統(tǒng)工程目錄結(jié)構(gòu)如下圖所示</p><p> 圖4-1 系統(tǒng)工程目錄圖</p><p> src 目錄: 用于存放系
39、統(tǒng)的所有源代碼,源代碼按照包結(jié)構(gòu)進(jìn)行組織。</p><p> db包: 存放數(shù)據(jù)庫操作類。</p><p> entity包: 存放系統(tǒng)的尸體類,包括圖書和讀者實體類。</p><p> util包: 存放系統(tǒng)的使用工具類,為其他包公用。</p><p> windows包: 存放系統(tǒng)的圖形界面窗口類。</p><
40、p> lib目錄: 存放系統(tǒng)運行所需的庫文件,需要加入到Eclipse 的Build Path中。</p><p><b> 4.3 公共模塊</b></p><p> 系統(tǒng)開發(fā)過程中,經(jīng)常需要設(shè)計一些公共模塊供系統(tǒng)中其他功能模塊共同調(diào)用。本系統(tǒng)的公共模塊主要由db和util兩個包來實現(xiàn)。</p><p><b> 4.
41、3.1 db包</b></p><p> db包主要用來存放數(shù)據(jù)庫操作類。系統(tǒng)與數(shù)據(jù)庫的交互最終都是通過調(diào)用db包中的相關(guān)類來實現(xiàn)。db包的構(gòu)成如下表所示。</p><p> 表4-1 db包構(gòu)成</p><p> (1)BaseDao類</p><p> BaseDao類用于完成最基本的數(shù)據(jù)庫操作,包括建立數(shù)據(jù)庫連接和執(zhí)
42、行sql語句等。在該類中構(gòu)造了連接數(shù)據(jù)庫的方法,該方法可判斷數(shù)據(jù)庫是否已經(jīng)建立了連接。在該類中還定義了兩個方法用于根據(jù)傳入的sql語句,執(zhí)行數(shù)據(jù)庫的Query或者Update等操作。調(diào)用其方法的外部實體不需要關(guān)心具體的數(shù)據(jù)庫操作實現(xiàn),代碼如下。</p><p> public class BaseDao {</p><p> protected static String driver
43、 = "com.mysql.jdbc.Driver"; //數(shù)據(jù)庫驅(qū)動</p><p> protected static String url = "jdbc:mysql://127.0.0.1:3306/tsgl?characterEncoding=utf8";//連接url</p><p> protected static
44、 String dbUser = "root";//數(shù)據(jù)庫用戶名</p><p> protected static String dbPwd = "1111";//數(shù)據(jù)庫密碼</p><p> private static Connection conn = null;</p><p>
45、 private BaseDao() {</p><p><b> try {</b></p><p> if (conn == null) {</p><p> Class.forName(driver); //加載數(shù)據(jù)庫驅(qū)動</p><p> conn = DriverManager.g
46、etConnection(url, dbUser, dbPwd);//建立數(shù)據(jù)庫連接</p><p><b> } else</b></p><p><b> return;</b></p><p> } catch (Exception ee) {</p><p> ee.printSt
47、ackTrace();</p><p><b> }</b></p><p><b> }</b></p><p> public static ResultSet executeQuery(String sql) {</p><p><b> try {</b><
48、;/p><p> if (conn == null)</p><p> new BaseDao();</p><p> return conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,</p><p> ResultSet.CONCUR_UPDATABLE).executeQuery
49、(sql);//執(zhí)行數(shù)據(jù)庫查詢</p><p> } catch (SQLException e) {</p><p> e.printStackTrace();</p><p> return null;</p><p><b> } </b></p><p><b> }
50、</b></p><p> public static int executeUpdate(String sql) {</p><p><b> try {</b></p><p> if (conn == null)</p><p> new BaseDao();</p><p&
51、gt; return conn.createStatement().executeUpdate(sql);//執(zhí)行數(shù)據(jù)庫更新</p><p> } catch (SQLException e) {</p><p> System.out.println(e.getMessage());</p><p> return -1;</p>&
52、lt;p> } finally {</p><p><b> }</b></p><p><b> } </b></p><p> (2)BookDao類</p><p> 該類用于對圖書信息數(shù)據(jù)進(jìn)行數(shù)據(jù)庫操作,主要包含了獲取圖書信息單個實體與實體列表的方法。</p>
53、<p> (3)ReaderDao類</p><p> 該類用于對讀者信息數(shù)據(jù)進(jìn)行數(shù)據(jù)庫操作,主要包含了獲取讀者信息單個實體與實體列表的方法。</p><p> (4)BorrowDao類</p><p> 該類用于對借閱信息數(shù)據(jù)進(jìn)行數(shù)據(jù)庫操作,同樣是獲取借閱信息實體列表的方法。</p><p> 4.3.2 util包&
54、lt;/p><p> util 包主要用于存放一些使用工具類。系統(tǒng)所有模塊中經(jīng)常需要使用的一些工具類或者系統(tǒng)常量等在該包中定義,包含一些系統(tǒng)全局變量類與日期工具類。系統(tǒng)經(jīng)常碰到一些日期數(shù)據(jù),為了方便系統(tǒng)需要,該包中定義了各種日期操作的方法,方便對日期型數(shù)據(jù)操作時直接調(diào)用。</p><p> 4.4 功能模塊的實現(xiàn)</p><p> 4.4.1登錄模塊相關(guān)</
55、p><p> 登錄模塊用于實現(xiàn)系統(tǒng)的登錄功能,也是進(jìn)入系統(tǒng)的入口。登錄模塊主要由window包下的Login類實現(xiàn)。當(dāng)用戶輸入完用戶名和密碼后,單擊“確定”按鈕。“確定”按鈕定義了相應(yīng)的事件監(jiān)聽器用于響應(yīng)該動作。其響應(yīng)事件主要由該類中定義的btn_okActionPerformed()方法來實現(xiàn)。</p><p> 在連接數(shù)據(jù)庫進(jìn)行驗證之前,判斷是否輸入了用戶名。如果未輸入,則系統(tǒng)給出提示
56、,方法終止運行。如果用戶名不為空,則程序連接數(shù)據(jù)庫。在user表中查詢name值是否等于輸入的用戶名并且pass值等于輸入密碼的記錄。如果相應(yīng)記錄不存在,系統(tǒng)給出提示,方法再次中斷。</p><p> 如果滿足條件的記錄存在,則將用戶名記錄到全局變量的login_user中,進(jìn)入系統(tǒng)主界面,登錄成功。</p><p> 圖4-2 系統(tǒng)登錄界面</p><p>
57、 成功登錄系統(tǒng)后即進(jìn)入系統(tǒng)的主界面,系統(tǒng)會根據(jù)登錄用戶的權(quán)限不同展示不同的主界面。一般用戶的些許功能模塊不能使用。</p><p> 圖4-3 管理員主界面</p><p> 4.4.2 基礎(chǔ)維護(hù)模塊相關(guān)</p><p><b> (1)圖書維護(hù)</b></p><p> 圖書維護(hù)子模塊用于維護(hù)圖書的相關(guān)信息,包
58、括對圖書信息的添加、修改和刪除。所有的維護(hù)操作最終都是落實到數(shù)據(jù)庫中book表的數(shù)據(jù)庫操作。</p><p><b> ?、偬砑訄D書</b></p><p> 圖書信息的添加功能主要由window包下的BookAdd類來實現(xiàn)。待用戶輸入完圖書信息信息后,單擊“保存”按鈕,系統(tǒng)觸發(fā)相應(yīng)事件來執(zhí)行添加操作。圖書信息自動存入book表中,并進(jìn)行自動編號。</p>
59、;<p> 圖4-4 添加圖書界面</p><p><b> ②圖書修改</b></p><p> 圖書信息的修改功能主要由window包下的BookUpdate類來實現(xiàn)。選擇“圖書維護(hù)”菜單下的“修改”子菜單后彈出圖書修改界面。程序首先獲取用戶輸入的圖書編號,然后根據(jù)編號在數(shù)據(jù)庫中提取圖書信息,最后將提取的圖書信息顯示到圖形界面上供用戶修改。待用
60、戶修改完相應(yīng)的圖書信息后,單擊“保存”系統(tǒng)執(zhí)行圖書信息修改的保存操作。關(guān)鍵代碼如下所示。</p><p> private void btn_saveActionPerformed(ActionEvent e) {</p><p> //獲取用戶輸入信息</p><p> String id = tf_id.getText();</p><
61、;p> String name = tf_name.getText();</p><p> String type = cb_type.getSelectedItem().toString();</p><p> String author = tf_author.getText();</p><p> String translator = tf_
62、translator.getText();</p><p> String publisher = tf_publisher.getText();</p><p> String publish_time = tf_publish_time.getText();</p><p> String price = tf_price.getText();</p
63、><p> String stock = tf_stock.getText();</p><p> String sql = "update book set name='" + name + "',type='" + type</p><p> + "',author='&
64、quot; + author + "',translator='" + translator</p><p> + "',publisher='" + publisher + "',publish_time='"</p><p> + java.sql.Date.valueOf(
65、publish_time) + "',price="</p><p> + Double.parseDouble(price) + ",stock=" + stock + " where id='"</p><p> + id + "'"; </p><p>
66、<b> //執(zhí)行數(shù)據(jù)庫操作</b></p><p> int i = BaseDao.executeUpdate(sql);</p><p><b> if(i==1){</b></p><p> JOptionPane.showMessageDialog(null, "修改成功");<
67、/p><p> dispose();</p><p><b> }</b></p><p> 圖4-5 圖書修改界面</p><p><b> ?、蹐D書刪除</b></p><p> 圖書信息的刪除功能主要由window包下的BookDelete類來實現(xiàn)。刪除圖書前,首先
68、通過輸入待刪除的圖書編號,獲取該編號的圖書信息,在確認(rèn)后通過點擊相應(yīng)的功能按鍵來實現(xiàn)圖書刪除功能。關(guān)鍵代碼如下所示。</p><p> private void btn_delActionPerformed(ActionEvent e) {</p><p> String id = tf_id.getText();//獲取圖書編號</p><p> Str
69、ing sql = "delete from book where id='" + id + "'";//刪除指定編號的圖書</p><p><b> //執(zhí)行數(shù)據(jù)庫操作</b></p><p> int i = BaseDao.executeUpdate(sql);</p><p&g
70、t;<b> if(i==1){</b></p><p> JOptionPane.showMessageDialog(null, "刪除成功");</p><p> dispose();</p><p><b> }</b></p><p><b> }&l
71、t;/b></p><p><b> (2) 讀者維護(hù)</b></p><p> 讀者維護(hù)與圖書維護(hù)的相應(yīng)功能實現(xiàn)起來類似。主要也是通過window包下的不同類來實現(xiàn)相應(yīng)的功能。</p><p> 4.4.3借閱模塊相關(guān)</p><p> 借閱模塊下包含了借書與還書兩個子模塊。</p><
72、;p> 數(shù)據(jù)庫中的borrow表負(fù)責(zé)存儲讀者借書信息,所以系統(tǒng)最終的實現(xiàn)實際是對borrow表進(jìn)行數(shù)據(jù)庫操作。程序通過獲取用戶的輸入從reader表與book表中提取相應(yīng)的信息,再經(jīng)過系統(tǒng)的整合加工將所得數(shù)據(jù)寫入borrow中,并對reader表與book表進(jìn)行更新。關(guān)鍵代碼如下所示。</p><p> private void btn_borrowActionPerformed(ActionEvent
73、 e) {</p><p> String book_id = tf_book_id.getText();//獲取圖書編號</p><p> String reader_id = tf_reader_id.getText();//獲取讀者編號</p><p> String borrow_date = lb_borrow_date.getText();
74、//獲取借出日期</p><p> String back_date = lb_back_date.getText();//獲取還書日期</p><p> //判斷書籍是否可借</p><p> Book book = BookDao.selectBook(book_id);</p><p> String bookname =
75、book.getName();</p><p> int is_back = book.getIs_back();</p><p> if (is_back != 0){</p><p> //對讀者能否繼續(xù)借書進(jìn)行判斷</p><p> String id = tf_reader_id.getText();</p>&
76、lt;p> Reader reader = ReaderDao.selectReader(id);</p><p> int num = reader.getMax_num();</p><p> if (num >0 ){</p><p> num=num-1;</p><p><b> //拼sql語句&l
77、t;/b></p><p> String sql = "insert into borrow(book_id,reader_id,borrow_date,back_date,is_back,bookname) values('"+ book_id+ "','"+ reader_id+ "','"+ bor
78、row_date+ "','"+ back_date+ "','0','"+ bookname+"')"; </p><p><b> //執(zhí)行數(shù)據(jù)庫操作</b></p><p> int i = BaseDao.executeUpdate(sql)
79、;</p><p><b> if(i==1){</b></p><p> JOptionPane.showMessageDialog(null, "借書成功");</p><p> String sql0 = "update book set is_back=0 where id= '"+
80、book_id+"'";</p><p> BaseDao.executeUpdate(sql0);</p><p> String sql2 = "update reader set max_num = '" + num +"' where id = '" + id +"'&
81、quot;; </p><p> BaseDao.executeUpdate(sql2);</p><p><b> }</b></p><p><b> }else</b></p><p> JOptionPane.showMessageDialog(null, "該讀者所借書籍
82、已達(dá)上限!");</p><p><b> }else{</b></p><p> JOptionPane.showMessageDialog(null, "該書已被借走");</p><p><b> }</b></p><p><b> }<
83、/b></p><p> 圖4-6 借書功能界面</p><p> 4.4.4查詢管理模塊相關(guān)</p><p> 該模塊下設(shè)計了幾個模塊,用于圖書、讀者、借閱信息與讀者的自查詢等幾個模塊。能用于管理員對相關(guān)信息的查詢,也使讀者能對自己借閱情況與自身信息的查詢。</p><p> 該模塊通過在window包下的不同類來實現(xiàn)。查詢時
84、可以實現(xiàn)對單一分類進(jìn)行查詢,也能夠進(jìn)行多條件的復(fù)合查詢。當(dāng)讀者用戶登錄時,在進(jìn)行讀者信息查詢時系統(tǒng)通過調(diào)用全局變量的login_user自動對讀者進(jìn)行匹配,可以有效防止其他讀者信息的泄露,同時也能方便進(jìn)行快速準(zhǔn)確的信息查詢。</p><p> 圖4-7 圖書查詢界面</p><p> 4.4.5 統(tǒng)計模塊相關(guān)</p><p> 統(tǒng)計模塊下設(shè)置借閱統(tǒng)計讀者統(tǒng)計與
85、圖書統(tǒng)計三個子模塊。用于管理員對圖書信息以及讀者借閱等信息的統(tǒng)計。具備分類統(tǒng)計的功能,具體數(shù)據(jù)與數(shù)據(jù)總量在用戶界面上顯示,并且用戶可對統(tǒng)計數(shù)據(jù)進(jìn)行復(fù)制,以便進(jìn)行備份以及配合其他軟件進(jìn)行數(shù)據(jù)的再加工。部分關(guān)鍵代碼如下所示。</p><p> private void btn_cxActionPerformed(ActionEvent e) {</p><p> String id = t
86、f_id.getText();</p><p> String author = tf_author.getText();</p><p> String publisher = tf_publisher.getText();</p><p> String type = tf_type.getText();</p><p> St
87、ring sql = "select * from book where name = '" + id + "' or author = '"+author+"'or publisher = '"+publisher+"'or type = '"+type+"'";<
88、;/p><p> Object[][] results = getResult(BookDao.selectBookList(sql));</p><p> DefaultTableModel model=new DefaultTableModel();</p><p> table.setModel(model);</p><p> m
89、odel.setDataVector(results, heads);</p><p> String i = String.valueOf(results.length);</p><p> tf_count.setText(i);</p><p><b> }</b></p><p> 4.4.6系統(tǒng)管理模塊
90、相關(guān)</p><p> 用戶登錄系統(tǒng)以后,在主界面上選擇“系統(tǒng)管理”菜單項后可以使用系統(tǒng)管理模塊。系統(tǒng)管理模塊主要包括更改密碼和退出系統(tǒng)兩個子模塊。</p><p> 更改密碼子模塊用于實現(xiàn)對當(dāng)前登錄用戶密碼的修改。更改密碼功能主要由window包下的UpdatePassword類來實現(xiàn)。</p><p> 圖4-8 修改密碼界面</p><
91、;p> 程序首先獲取用戶兩次輸入的密碼,然后比較兩次輸入的密碼是否一致。如果兩次輸入密碼不一致,則系統(tǒng)給出提示,終止方法執(zhí)行。</p><p> 圖4-9 密碼修改不成功提示</p><p> 如果兩次輸入密碼一直,則執(zhí)行數(shù)據(jù)庫操作。更新數(shù)據(jù)庫user表中當(dāng)前用戶的密碼為新密碼。數(shù)據(jù)庫操作成功,同時給出“密碼修改成功”提示。</p><p> 圖4-1
92、0 密碼修改成功提示</p><p><b> 關(guān)鍵代碼如下所示。</b></p><p> private void okButtonActionPerformed(ActionEvent e) {</p><p> String pass1 = tf_pass1.getText();//獲取第一次輸入密碼</p>&l
93、t;p> String pass2 = tf_pass2.getText();//獲取第二次輸入密碼</p><p> //兩次輸入密碼不一致</p><p> if (!pass1.equals(pass2)) {</p><p> JOptionPane.showMessageDialog(this,"第一次輸入的密碼和第二此輸入的密碼
94、不一致,請重新輸入!");</p><p> tf_pass1.setText("");</p><p> tf_pass2.setText("");</p><p><b> return;</b></p><p><b> }</b>&l
95、t;/p><p> //執(zhí)行數(shù)據(jù)庫操作,更改密碼</p><p> String sql = "update user set pass='" + pass1 + "' where name='"+ GlobalVar.login_user + "'";</p><p>
96、 int i = BaseDao.executeUpdate(sql);</p><p><b> if(i==1){</b></p><p> JOptionPane.showMessageDialog(null, "密碼修改成功");</p><p> dispose();</p><p>
97、<b> }</b></p><p><b> 5 結(jié)論</b></p><p> 經(jīng)過大概兩周的設(shè)計和開發(fā)工作,該圖書管理信息系統(tǒng)基本完成,實現(xiàn)了小型圖書館日常的基本管理系統(tǒng)。</p><p> 這次圖書管理信息系統(tǒng)的實現(xiàn)也讓我學(xué)習(xí)到了很多,特別是在編程開發(fā),讓我對數(shù)據(jù)庫的開發(fā)以及Java編程有了很大的進(jìn)步,明
98、白了一個軟件的設(shè)計實現(xiàn)遠(yuǎn)遠(yuǎn)不是簡單的代碼堆疊。以前在學(xué)習(xí)編程語言的時候總感覺編程看起來并不難,但是當(dāng)把這些離散的功能組件整合在一起,用來實現(xiàn)一個更大更完整的系統(tǒng)時,卻發(fā)現(xiàn)這其中的難度不是光靠想象就能感覺得到的。當(dāng)一次次的錯誤提示拋出,終于明白只是學(xué)習(xí)到開發(fā)語言,在程序員這條路上不過是剛從起跑線出發(fā)。</p><p> 在日后的學(xué)習(xí)中,我會更加的努力,學(xué)以致用,在實踐中發(fā)現(xiàn)問題解決問題,爭取更大的進(jìn)步。</
99、p><p><b> 參考文獻(xiàn)</b></p><p> [1] 彭燦華,魏士偉.J2EE項目開發(fā)與設(shè)計[M].北京:中國鐵道出版社,2013:58~66.</p><p> [2] 劉升華.零點起飛學(xué)Java[M].北京:清華大學(xué)出版社,2013:276~303.</p><p> [3] 徐寶民.數(shù)據(jù)庫原理
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫課程設(shè)計---圖書信息管理系統(tǒng)
- sql課程設(shè)計---圖書信息管理系統(tǒng)數(shù)據(jù)庫設(shè)計
- 數(shù)據(jù)庫技術(shù)與應(yīng)用課程設(shè)計---圖書信息管理系統(tǒng)
- 圖書信息管理系統(tǒng)課程設(shè)計報告
- 圖書信息管理系統(tǒng)課程設(shè)計報告
- 圖書信息管理系統(tǒng)課程設(shè)計報告
- 課程設(shè)計報告--圖書信息管理系統(tǒng)設(shè)計
- 課程設(shè)計--圖書信息管理系統(tǒng)
- 圖書信息管理系統(tǒng)課程設(shè)計
- 圖書信息管理系統(tǒng) 課程設(shè)計
- 程序課程設(shè)計報告 圖書信息管理系統(tǒng)
- java圖書信息管理系統(tǒng)課程設(shè)計報告
- 課程設(shè)計---圖書信息管理系統(tǒng)
- 課程設(shè)計---圖書信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告--學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計報告
- 數(shù)據(jù)庫課程設(shè)計報告-宿舍信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計高校圖書信息系統(tǒng)數(shù)據(jù)庫的設(shè)計與應(yīng)用
- 數(shù)據(jù)庫課程設(shè)計報告----賓館信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告--教室信息管理系統(tǒng)
評論
0/150
提交評論