基于uml的圖書館管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)論文+文獻(xiàn)綜述+任務(wù)書+開題報(bào)告】_第1頁
已閱讀1頁,還剩79頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p>  本科畢業(yè)設(shè)計(jì)(論文)</p><p><b>  ( 屆)</b></p><p>  論文題目基于UML的圖書館管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  所在學(xué)院 </p><p>  專業(yè)班級(jí) 信息管理與信息系統(tǒng) &

2、lt;/p><p>  學(xué)生姓名 學(xué)號(hào) </p><p>  指導(dǎo)教師 職稱 </p><p>  完成日期 年 月 日</p><p><b>  誠 信 申 明</b></p>

3、<p>  我申明,所呈交的論文(設(shè)計(jì))是本人在老師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。據(jù)我查證,除了文中特別加以標(biāo)注和致謝的地方外,論文(設(shè)計(jì))中不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得______或其他教育機(jī)構(gòu)的學(xué)位或證書而使用過的材料。我承諾,論文(設(shè)計(jì))中的所有內(nèi)容均真實(shí)、可信。</p><p>  論文(設(shè)計(jì))作者簽名: 簽名日期: 年 月 日<

4、/p><p><b>  授 權(quán) 申 明</b></p><p>  學(xué)校有權(quán)保留送交論文(設(shè)計(jì))的原件,允許論文(設(shè)計(jì))被查閱和借閱,學(xué)??梢怨颊撐模ㄔO(shè)計(jì))的全部或部分內(nèi)容,可以影印、縮印或其他復(fù)制手段保存論文(設(shè)計(jì)),學(xué)校必須嚴(yán)格按照授權(quán)對(duì)論文(設(shè)計(jì))進(jìn)行處理,不得超越授權(quán)對(duì)論文(設(shè)計(jì))進(jìn)行任意處置。</p><p>  論文(設(shè)計(jì))作者簽名

5、: 簽名日期: 年 月 日</p><p>  基于UML的圖書館管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  摘要:圖書館是搜集、整理、保管、傳播和利用文獻(xiàn)信息、為社會(huì)提供服務(wù)的文化事業(yè)機(jī)構(gòu),它承擔(dān)著保存人類文化遺產(chǎn)、進(jìn)行社會(huì)教育、傳遞文獻(xiàn)信息和開發(fā)智力資源的職能。隨著信息資源的不斷增長,就需要圖書館管理系統(tǒng)的來更加簡單、效率地支持圖書館的職能。</p>

6、<p>  本系統(tǒng)采用MyEclipse作為開發(fā)工具,JSP作為開發(fā)語言,MySQL為后臺(tái)數(shù)據(jù)庫管理系統(tǒng)。能夠?qū)崿F(xiàn)對(duì)圖書的查詢,添加,瀏覽,刪除等功能。文中主要描述了系統(tǒng)的背景和開發(fā)技術(shù)方案,分析了系統(tǒng)的需求分析和設(shè)計(jì),并且對(duì)每個(gè)模塊的設(shè)計(jì)與實(shí)施做出了詳細(xì)的描述,系統(tǒng)基本能滿足用戶查詢和閱覽圖書信息資源的功能。</p><p>  關(guān)鍵字:圖書館;管理;數(shù)據(jù)庫;模塊</p><p

7、>  Based on UML library management system design and implementation</p><p>  Abstract:The library is collecting, sorting out, keeping, dissemination and using literature information, provide services of c

8、ultural institutions for social, it undertakes the functions of conserved human cultural heritage, carry out social education, transfer literature information and developing intelligence resources.</p><p> 

9、 The system USES the MyEclipse as a receptionist for development tool, JSP as a development language, MySQL backend database management system. Can realize for librarians query, add, browse, delete etc. Function. This pa

10、per mainly describes the background and development of technology system scheme, and the analysis of system analysis and design, and needs of each module design and implementation, and makes a detailed description of the

11、 basic system can satisfy user query and reading books inform</p><p>  Key words:The library; Management; Database; module</p><p><b>  目 錄</b></p><p>  1 系統(tǒng)概述………………………

12、…………………………………………………………………1</p><p>  1.1 項(xiàng)目背景簡介…………………………………………………………………………… 1</p><p>  1.2 國內(nèi)外發(fā)展現(xiàn)狀………………………………………………………………………… 1</p><p>  1.3 項(xiàng)目目標(biāo)…………………………………………………………………………………

13、2</p><p>  2 開發(fā)技術(shù)方案選擇………………………………………………………………………………3</p><p>  2.1 JSP技術(shù)簡介………………………………………………………………………………3</p><p>  2.2 Struts的概述………………………………………………………………………………4</p><p>

14、;  2.3 MYSQL簡介………………………………………………………………………………5</p><p>  3 系統(tǒng)分析…………………………………………………………………………………………7</p><p>  3.1 需求調(diào)查………………………………………………………………………………… 7</p><p>  3.2 用例圖設(shè)計(jì)……………………………

15、………………………………………………… 8</p><p>  3.3 實(shí)體類圖設(shè)計(jì)……………………………………………………………………………10</p><p>  4 系統(tǒng)設(shè)計(jì)……………………………………………………………………………………… 13</p><p>  4.1 系統(tǒng)功能介紹……………………………………………………………………………13<

16、;/p><p>  4.2 用例設(shè)計(jì)…………………………………………………………………………………13</p><p>  4.3 數(shù)據(jù)庫設(shè)計(jì)………………………………………………………………………………17</p><p>  4.3.1 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)……………………………………………………………17</p><p>  4.3.2

17、 數(shù)據(jù)庫數(shù)據(jù)表設(shè)計(jì)………………………………………………………………20</p><p>  5 系統(tǒng)實(shí)現(xiàn)……………………………………………………………………………………… 24</p><p>  5.1 數(shù)據(jù)庫的連接……………………………………………………………………………24</p><p>  5.2 系統(tǒng)登陸模塊的實(shí)現(xiàn)…………………………………………

18、…………………………27</p><p>  5.3 圖書信息管理模塊的實(shí)現(xiàn)………………………………………………………………29</p><p>  5.3.1 圖書類別信息添加功能實(shí)現(xiàn)…………………………………………………… 29</p><p>  5.3.2 圖書類別信息維護(hù)功能實(shí)現(xiàn)…………………………………………………… 31</p>&

19、lt;p>  5.3.3 圖書信息添加功能實(shí)現(xiàn)………………………………………………………… 32</p><p>  5.4 讀者信息管理模塊的實(shí)現(xiàn)………………………………………………………………36</p><p>  5.4.1 讀者類別信息添加功能實(shí)現(xiàn)……………………………………………………36</p><p>  5.4.2 讀者信息添加功能實(shí)

20、現(xiàn)…………………………………………………………38</p><p>  5.4.3 讀者信息管理功能實(shí)現(xiàn)……………………………………………………… 41</p><p>  5.5 圖書借閱管理模塊的實(shí)現(xiàn)………………………………………………………………42</p><p>  5.5.1 圖書借閱功能實(shí)現(xiàn)………………………………………………………………43&

21、lt;/p><p>  5.5.2 圖書續(xù)借功能實(shí)現(xiàn)………………………………………………………………46</p><p>  5.5.3 圖書歸還功能實(shí)現(xiàn)…………………………………………………………… 49</p><p>  5.6 系統(tǒng)管理模塊的實(shí)現(xiàn)……………………………………………………………………51</p><p>  5.6.

22、1 管理員權(quán)限設(shè)置功能的實(shí)現(xiàn)………………………………………………… 51</p><p>  5.6.2 個(gè)人口令修改功能實(shí)現(xiàn)…………………………………………………………53</p><p>  6 系統(tǒng)測試……………………………………………………………………………………… 55</p><p>  6.1 測試方案……………………………………………………

23、……………………………55</p><p>  6.2 系統(tǒng)評(píng)價(jià)…………………………………………………………………………………56</p><p>  7 總結(jié)…………………………………………………………………………………………… 57</p><p>  致 謝………………………………………………………………………………………………58</p>

24、<p>  參考文獻(xiàn)……………………………………………………………………………………………59</p><p><b>  1 系統(tǒng)概述</b></p><p>  1.1 項(xiàng)目背景簡介</p><p>  圖書館管理信息系統(tǒng)(Library Management Information System,LMIS)就是將傳統(tǒng)圖書館

25、業(yè)務(wù)的手工操作轉(zhuǎn)變成由計(jì)算機(jī)管理,即對(duì)圖書館的圖書、期刊、音像資料等各種載體文獻(xiàn),實(shí)現(xiàn)采訪、編目、典藏、流通、檢索以及相關(guān)業(yè)務(wù)工作的計(jì)算機(jī)化、信息化管理[1]。</p><p>  自從人類步入信息時(shí)代后,創(chuàng)造的信息爆炸式增長,再加上信息數(shù)字化技術(shù),通訊技術(shù),多媒體技術(shù)的迅速發(fā)展和網(wǎng)絡(luò)的普及,圖書館作為信息資源的集散地,需要不斷更新繁多的各類圖書信息,電子信息以及借閱信息,再加上圖書館工作人員數(shù)量有限,傳統(tǒng)的基于

26、文本和表格的紙質(zhì)介質(zhì)的手工統(tǒng)計(jì)和操作已經(jīng)無法滿足圖書館日益增長的各類業(yè)務(wù)需求。再者,需要處理的數(shù)據(jù)量十分龐大,人工統(tǒng)計(jì)過程非常容易出錯(cuò),對(duì)出錯(cuò)信息的重新檢查和查找也十分得繁瑣,這些都將為廣大讀者帶來不必要的麻煩。因此傳統(tǒng)手工操作隨著時(shí)代的發(fā)展,效率越來越低,造成大量的人力,物力的浪費(fèi)。為了使讀者在圖書館的借書還書等業(yè)務(wù)更加方便,有效地簡化讀者借還書手續(xù),提高圖書借閱率,避免因?yàn)槭止げ僮鞒鲥e(cuò)導(dǎo)致的讀者與管理人員之間不必要的爭執(zhí)等不該出現(xiàn)的

27、問題,因此亟待需要有一套能夠有效處理圖書館日常各項(xiàng)業(yè)務(wù)和具備各個(gè)相關(guān)功能的圖書館管理系統(tǒng),使圖書館管理工作規(guī)范化,程序化,系統(tǒng)化,提高圖書館信息處理的效率和準(zhǔn)確度[2]。</p><p>  1.2 國內(nèi)外發(fā)展現(xiàn)狀</p><p>  圖書館管理系統(tǒng)的發(fā)展階段按關(guān)鍵特征劃分為三個(gè)階段:第一階段從手工操作到計(jì)算機(jī)操作,第二階段是從只有單個(gè)模塊系統(tǒng)到兩個(gè)或者多個(gè)模塊系統(tǒng)以及從單一功能到多功能

28、的轉(zhuǎn)變,第三階段是從圖書館提供的服務(wù)來劃分的,從直接提供面對(duì)面的單個(gè)圖書館資源的服務(wù)到可以提供在線服務(wù)的、多個(gè)圖書館的資源的服務(wù),第四階段從只能提供圖書館紙質(zhì)資源到能提供多種網(wǎng)絡(luò)資源和在線多媒體資源,從主要是功能的集成到對(duì)不同類型資源的轉(zhuǎn)變。</p><p>  可見,圖書館管理業(yè)務(wù)中計(jì)算機(jī)進(jìn)行自動(dòng)化管理的比重不斷增加,但是目前在研究過程中,主要存在如下問題:一是人們對(duì)圖書館信息管理系統(tǒng)這一概念的理解過于狹隘,再

29、加上很多圖書館缺乏圖書館管理信息系統(tǒng)建設(shè)的指導(dǎo),因此在很大程度上限制了計(jì)算機(jī)管理系統(tǒng)在圖書館工作中的深入使用。二是目前很少有圖書館管理系統(tǒng)能夠可以實(shí)現(xiàn)辦公自動(dòng)化管理和知識(shí)管理能力,決策支持能力。具體主要體現(xiàn)在如下幾個(gè)方面。首先,系統(tǒng)不易維護(hù)。圖書館管理系統(tǒng)大多數(shù)采用C/S結(jié)構(gòu),這種模式是一種兩層結(jié)構(gòu)的分布模式,開發(fā)的應(yīng)用程序裝在客戶端中,因此當(dāng)需要改動(dòng)客戶端程序的時(shí)候,需要將客戶端程序重新安裝。另外,由于軟件發(fā)開過于依靠高校,缺乏公司的

30、經(jīng)營理念,因此系統(tǒng)的補(bǔ)丁和升級(jí)不夠,維護(hù)也不及時(shí),對(duì)用戶的意見不重視,甚至完全忽視。其次,系統(tǒng)難移植和集成。大多數(shù)系統(tǒng)都為了商業(yè)利益而采取技術(shù)保護(hù),因此用戶很難按照自己的需求對(duì)現(xiàn)有的系統(tǒng)采取嵌入新程序的方式。而且現(xiàn)在圖書館管理系統(tǒng)的趨勢是系統(tǒng)接口和數(shù)據(jù)的共享,但是由于圖書館管理系統(tǒng)的提供是多個(gè)廠商和平臺(tái)來完成導(dǎo)致這個(gè)趨勢無法達(dá)成或者很難達(dá)成。再者,系統(tǒng)缺乏雙向交流互動(dòng)。這是由2個(gè)原因?qū)е碌模阂环矫骈_發(fā)商,</p><

31、p><b>  1.3 項(xiàng)目目標(biāo)</b></p><p>  本次畢業(yè)設(shè)計(jì)就是開發(fā)一個(gè)圖書館管理系統(tǒng),并通過該系統(tǒng)處理常見的圖書館相關(guān)業(yè)務(wù)。本系統(tǒng)的目標(biāo)是:</p><p>  (1)借閱者可以通過系統(tǒng)查詢書籍信息。</p><p> ?。?)借閱者能夠借閱書籍和歸還書籍。</p><p>  (3)圖書管理員能

32、夠處理借閱者的借閱和還書。</p><p> ?。?)系統(tǒng)管理員可以對(duì)系統(tǒng)的數(shù)據(jù)進(jìn)行維護(hù),如增加、刪除、更新書目,增加、刪除和更新借閱者帳戶。 </p><p>  2 開發(fā)技術(shù)方案選擇</p><p>  本系統(tǒng)選擇的開發(fā)技術(shù)語言為JSP,系統(tǒng)在Microsoft Windows XP下開發(fā),所采用的開發(fā)工具主要是myEclipse6.5,選擇的數(shù)據(jù)庫為MySQ

33、L。發(fā)布平臺(tái)為TOMCAT6.0服務(wù)器端運(yùn)行,客戶端的IE版本需要在6.0以上。下面分別對(duì)編程環(huán)境以及數(shù)據(jù)庫MySQL做介紹分析。</p><p>  2.1 JSP技術(shù)簡介</p><p>  Web服務(wù)從由簡單網(wǎng)頁構(gòu)成的靜態(tài)服務(wù)網(wǎng)站,發(fā)展到可以交互執(zhí)行一些復(fù)雜步驟的動(dòng)態(tài)服務(wù)網(wǎng)站,這就需要和其他服務(wù)整合,需要多個(gè)服務(wù)能夠一起無縫地協(xié)同工作,需要能夠創(chuàng)建出與設(shè)備無關(guān)的應(yīng)用程序,需要能夠容

34、易地協(xié)調(diào)網(wǎng)絡(luò)上的各個(gè)服務(wù)的操作步驟,容易地創(chuàng)建新的用戶化的服務(wù)[4]。</p><p>  Java是一種簡單易用、完全面向?qū)ο?、具有平臺(tái)無關(guān)性且安全可靠的主要面向Internet的開發(fā)工具。JSP(Java Server Page)技術(shù)讓Java成為了基于Web的應(yīng)用程序的首選開發(fā)工具,目前的Java技術(shù)已成為所有大型電子商務(wù)項(xiàng)目的必然選擇。JSP技術(shù)可以以一種簡捷而快速的方法生成Web頁面。使用JSP技術(shù)的W

35、eb頁面可以很容易地顯示動(dòng)態(tài)內(nèi)容。JSP技術(shù)的設(shè)計(jì)目的是使得構(gòu)造基于Web的應(yīng)用程序更加容易和快捷,而這些應(yīng)用程序能夠與各種Web服務(wù)器、應(yīng)用服務(wù)器、瀏覽器和開發(fā)工具共同工作。JSP技術(shù)不是惟一的動(dòng)態(tài)網(wǎng)頁技術(shù),也不是第一個(gè),在JSP技術(shù)出現(xiàn)之前就已經(jīng)存在幾種優(yōu)秀的動(dòng)態(tài)網(wǎng)頁技術(shù),如CGI、ASP等。</p><p>  基于Java語言的JSP技術(shù)具有很多其他動(dòng)態(tài)網(wǎng)頁技術(shù)所沒有的特點(diǎn),具體表現(xiàn)在如下方面:</

36、p><p> ?。?)簡便性和有效性</p><p>  JSP動(dòng)態(tài)網(wǎng)頁的編寫與一般的靜態(tài)HTML的網(wǎng)頁編寫是十分相似的。只是在原來的HTML網(wǎng)頁中加入一些JSP專有的標(biāo)簽,或是一些腳本程序(此項(xiàng)不是必需的)。這樣,一個(gè)熟悉HTML網(wǎng)頁編寫的設(shè)計(jì)人員可以很容易進(jìn)行JSP網(wǎng)頁的開發(fā)。而且開發(fā)人員完全可以不自己編寫腳本程序,而只是通過JSP獨(dú)有的標(biāo)簽使用別人已寫好的部件來實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁的編寫。這樣,

37、一個(gè)不熟悉腳本語言的網(wǎng)頁開發(fā)者,完全可以利用JSP做出漂亮的動(dòng)態(tài)網(wǎng)頁。而這在其他的動(dòng)態(tài)網(wǎng)頁開發(fā)中是不可實(shí)現(xiàn)的。</p><p><b> ?。?)程序的獨(dú)立性</b></p><p>  JSP是Java API家族的一部分,它擁有一般的Java程序的跨平臺(tái)的特性。換句話說,就是擁有程序的對(duì)平臺(tái)的獨(dú)立性,即Write once,Run anywhere!。</p

38、><p> ?。?)程序的兼容性 </p><p>  JSP中的動(dòng)態(tài)內(nèi)容可以各種形式進(jìn)行顯示,所以它可以為各種客戶提供服務(wù),即從使用HTML/DHTML的瀏覽器,到使用WML的各種手提無線設(shè)備(例如,移動(dòng)電話和個(gè)人數(shù)字設(shè)備PDA),再到使用XML的B2B應(yīng)用,都可以使用JSP的動(dòng)態(tài)頁面。</p><p> ?。?)程序的可重用性</p><p>

39、;  在JSP頁面中可以不直接將腳本程序嵌入,而只是將動(dòng)態(tài)的交互部分作為一個(gè)部件加以引用。這樣,一旦這樣的一個(gè)部件寫好,它可以為多個(gè)程序重復(fù)引用,實(shí)現(xiàn)了程序的可重用性?,F(xiàn)在,大量的標(biāo)準(zhǔn)JavaBeans程序庫就是一個(gè)很好的例證[5]。</p><p>  2.2 Struts的概述</p><p>  struts是一種開源軟件,采用 Struts 可以簡化Web 應(yīng)用的開發(fā)工作,實(shí)現(xiàn)代

40、碼重用,具有使得 Web 應(yīng)用具有強(qiáng)可擴(kuò)展性。Struts 的出現(xiàn)使得 Web 應(yīng)用的開發(fā)過程大大簡化,從而能夠縮短開發(fā)周期、提高開發(fā)效率。</p><p>  Struts的優(yōu)點(diǎn)主要集中體現(xiàn)在兩個(gè)方面:Taglib和頁面導(dǎo)航。Taglib是Struts的標(biāo)記庫,靈活動(dòng)用,能大大提高開發(fā)效率。Struts的標(biāo)記庫使得程序開發(fā)者使用JSP自帶的常用標(biāo)記。頁面導(dǎo)航使系統(tǒng)的流程更加清晰。通過一個(gè)配置文件可以清楚的看到整

41、個(gè)系統(tǒng)各部分之間的聯(lián)系,這對(duì)于后期的維護(hù)有著莫大的好處。尤其是當(dāng)另一批程序開發(fā)者接手這個(gè)項(xiàng)目時(shí),這種優(yōu)勢體現(xiàn)得更加明顯。</p><p>  下圖是Struts的工作流程,所有的請(qǐng)求都提交給ActionServlet來處理。如圖2-1 Struts的工作流程圖。</p><p>  ActionServlet是一個(gè)FrontController,它是一個(gè)標(biāo)準(zhǔn)的Servlet,它將reque

42、st轉(zhuǎn)發(fā)給RequestProcessor來處理, ActionMapping是ActionConfig的子類,實(shí)質(zhì)上是對(duì)struts-config.xml的一個(gè)映射,從中可以取得所有的配置信息 ,RequestProcessor根據(jù)提交過來的url,如*.do,從ActionMapping 中得到相應(yīng)的ActionForn和Action。然后將request的參數(shù)對(duì)應(yīng)到ActionForm中,進(jìn)行form驗(yàn)證。如果驗(yàn)證通過則調(diào)用Act

43、ion的execute()方法來執(zhí)行Action,最終返回ActionFoward,ActionFoward是對(duì)mapping中一個(gè)foward的包裝,對(duì)應(yīng)于一個(gè)url。</p><p>  ActionForm使用了ViewHelper模式,是對(duì)HTML中form的一個(gè)封裝。其中包含有validate方法,用于驗(yàn)證form數(shù)據(jù)的有效性。ActionForm是一個(gè)符合JavaBean規(guī)范的類,所有的屬性都應(yīng)滿足g

44、et和set對(duì)應(yīng)。對(duì)于一些復(fù)雜的系統(tǒng),還可以采用DynaActionForm來構(gòu)造動(dòng)態(tài)的Form,即通過預(yù)制參數(shù)來生成Form。這樣可以更靈活的擴(kuò)展程序。</p><p>  ActionErrors是對(duì)錯(cuò)誤信息的包裝,一旦在執(zhí)行action或者form.validate中出現(xiàn)異常,即可產(chǎn)生一個(gè)ActionError并最終加入到ActionErrors。在Form驗(yàn)證的過程中,如果有Error發(fā)生,則會(huì)將頁面重新

45、導(dǎo)向至輸入頁,并提示錯(cuò)誤。</p><p>  Action是用于執(zhí)行業(yè)務(wù)邏輯的RequsestHandler。每個(gè)Action都只建立一個(gè)instance。Action不是線程安全的,所以不應(yīng)該在Action中訪問特定資源。一般來說,應(yīng)改使用 Business Delegate 模式來對(duì)Business tier進(jìn)行訪問以解除耦合。 </p><p>  Struts提供了多種Acti

46、on供選擇使用。普通的Action只能通過調(diào)用execute執(zhí)行一項(xiàng)任務(wù),而DispatchAction可以根據(jù)配置參數(shù)執(zhí)行,而不是僅進(jìn)入execute()函數(shù),這樣可以執(zhí)行多種任務(wù)。如insert,update等。LookupDispatchAction可以根據(jù)提交表單按鈕的名稱來執(zhí)行函數(shù)。 </p><p>  圖2-1 Struts的工作流程圖</p><p>  2.3

47、 MYSQL簡介</p><p>  本系統(tǒng)的開發(fā)選擇的數(shù)據(jù)庫為MySQL,MySQL是最受歡迎的開源SQL數(shù)據(jù)庫管理系統(tǒng),它由MySQL AB開發(fā)、發(fā)布和支持,相比較其它系統(tǒng)而言,MySQL數(shù)據(jù)庫可以稱得上是目前運(yùn)行速度最快的SQL語言數(shù)據(jù)庫。</p><p>  MySQL的特性包括以下幾點(diǎn): </p><p> ?。?)MySQL是一個(gè)數(shù)據(jù)庫管理系統(tǒng)</

48、p><p>  一個(gè)數(shù)據(jù)庫是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合。它可以是從一個(gè)簡單的銷售表到一個(gè)美術(shù)館、或者一個(gè)社團(tuán)網(wǎng)絡(luò)的龐大的信息集合。如果要添加、訪問和處理存儲(chǔ)在一個(gè)計(jì)算機(jī)數(shù)據(jù)庫中的數(shù)據(jù),你就需要一個(gè)像MySQL這樣的數(shù)據(jù)庫管理系統(tǒng)。從計(jì)算機(jī)可以很好的處理大量的數(shù)據(jù)以來,數(shù)據(jù)庫管理系統(tǒng)就在計(jì)算機(jī)處理中和獨(dú)立應(yīng)用程序或其他部分應(yīng)用程序一樣扮演著一個(gè)重要的角色。</p><p> ?。?)MySQL是一個(gè)關(guān)

49、系數(shù)據(jù)庫管理系統(tǒng)</p><p>  關(guān)系數(shù)據(jù)庫把數(shù)據(jù)存放在分立的表格中,這比把所有數(shù)據(jù)存放在一個(gè)大倉庫中要好得多,這樣做將增加你的速度和靈活性?!癕ySQL”中的SQL代表“Structured Query Language”(結(jié)構(gòu)化查詢語言)。SQL是用于訪問數(shù)據(jù)庫的最通用的標(biāo)準(zhǔn)語言,它是由ANSI/ISO定義的SQL標(biāo)準(zhǔn)。SQL標(biāo)準(zhǔn)發(fā)展自1986年以來,已經(jīng)存在多個(gè)版本:SQL-86,SQL-92,SQL:

50、1999,SQL:2003,其中SQL:2003是該標(biāo)準(zhǔn)的當(dāng)前版本。</p><p> ?。?)MySQL是開源的數(shù)據(jù)庫管理系統(tǒng)</p><p>  開源意味著任何人都可以使用和修改該軟件,任何人都可以從Internet上下載和使用MySQL而不需要支付任何費(fèi)用。如果你愿意,你可以研究其源代碼,并根據(jù)你的需要修改它。</p><p> ?。?)MySQL適合訪問在I

51、nternet上的數(shù)據(jù)庫</p><p>  MySQL服務(wù)器原本就是開發(fā)比已存在的數(shù)據(jù)庫更快的用于處理大的數(shù)據(jù)庫的解決方案,并且已經(jīng)成功用于高苛刻生產(chǎn)環(huán)境多年。盡管MySQL仍在開發(fā)中,但它已經(jīng)提供一個(gè)豐富和極其有用的功能集。它的連接性、速度和安全性使MySQL非常適合訪問在Internet上的數(shù)據(jù)庫。</p><p>  (5)MySQL服務(wù)器工作在客戶/服務(wù)器或嵌入系統(tǒng)中</p

52、><p>  MySQL數(shù)據(jù)庫服務(wù)器是一個(gè)客戶/服務(wù)器系統(tǒng),它由多線程SQL服務(wù)器組成,支持不同的后端、多個(gè)不同的客戶程序和庫、管理工具和廣泛的應(yīng)用程序接口(APIs)。MySQL也可以是一個(gè)嵌入的多線程庫,你可以把它連接到你的應(yīng)用中而得到一個(gè)小、快且易于管理的產(chǎn)品[6]。</p><p><b>  3 系統(tǒng)分析</b></p><p><

53、;b>  3.1 需求調(diào)查</b></p><p>  需求調(diào)查是調(diào)查用戶的需求,是指對(duì)要解決的問題進(jìn)行詳細(xì)的分析,弄清楚問題的要求,包括需要輸入什么數(shù)據(jù),要得到什么結(jié)果,最后應(yīng)輸出什么?,F(xiàn)在我們應(yīng)該明確問題定義階段的主要任務(wù):我們要建立一個(gè)圖書信息管理系統(tǒng),以解決學(xué)校圖書館各類業(yè)務(wù)的基本情況,比便有效的擺脫傳統(tǒng)繁瑣的手工記賬,實(shí)現(xiàn)管理自動(dòng)化,從而提高工作效率。</p><

54、p>  所開發(fā)的圖書館管理系統(tǒng)要求具有界面友好,功能完備,易使用等特點(diǎn)。而后臺(tái)數(shù)據(jù)庫的數(shù)據(jù)要具有一致性、完整性、安全性、易維護(hù)性。系統(tǒng)開發(fā)的總目標(biāo)是實(shí)現(xiàn)內(nèi)部圖書借閱管理的系統(tǒng)化、規(guī)范化和自動(dòng)化。因此一個(gè)完善的圖書館管理系統(tǒng)應(yīng)該包括如下一些要求:</p><p>  讀者信息管理:管理員能夠?qū)ψx者進(jìn)行注冊登記,包括記錄讀者的姓名、編號(hào)、職業(yè)、性別、地址、郵箱等信息。并且在之后可以對(duì)讀者信息進(jìn)行修改和刪除等更新

55、操作。而且在登記讀者的時(shí)候可以登記讀者的類型,以便之后提供不同類型的服務(wù)。</p><p>  圖書館信息維護(hù):管理員登陸系統(tǒng)后可以對(duì)圖書館相關(guān)信息進(jìn)行設(shè)置,比如設(shè)置地址,郵箱,館名,簡介信息等。</p><p>  圖書館信息查詢:任何注冊登記的用戶都可以瀏覽該圖書館的相關(guān)信息,比如圖書館的館名字,館長,地址,郵箱,簡介等相關(guān)信息。</p><p>  圖書借還管

56、理:管理員可以處理讀者借書,還書的請(qǐng)求,每個(gè)讀者屬于不同的讀者類型,不同的讀者類型可以借閱圖書的數(shù)目也是不一樣的。讀者將實(shí)體書目拿給管理員的時(shí)候,管理員就可以針對(duì)該書目進(jìn)行借還管理,并在系統(tǒng)中更新相關(guān)信息,如借還日期,借還者,應(yīng)還日期等。</p><p>  圖書查詢:該系統(tǒng)可以為任何注冊登記的用戶提供方便的查詢方法,可以以條形碼、書名、作者、出版社、等信息進(jìn)行圖書檢索,并能反映出圖書的借閱情況;以借閱人編號(hào)對(duì)借

57、閱人信息進(jìn)行檢索;以出版社名稱查詢出版社聯(lián)系方式信息。</p><p>  圖書續(xù)借:管理員可以處理讀者續(xù)借的請(qǐng)求,讀者將實(shí)體書目拿給管理員的時(shí)候,管理員就可以針對(duì)該書目進(jìn)行續(xù)借管理,并在系統(tǒng)中更新相關(guān)信息,如續(xù)借期,借還者,應(yīng)還日期等。</p><p>  圖書信息維護(hù):管理員能夠?qū)D書進(jìn)行收錄登記,就是將圖書的一些必要的基本信息(畢如:書的條形碼、書名、作者、出版社等)預(yù)先存入圖書館數(shù)

58、據(jù)庫中,供以后查詢和為各項(xiàng)業(yè)務(wù)作支持。并且能夠設(shè)置圖書的類別,使得不同的圖書更容易被查詢。</p><p>  管理員權(quán)限設(shè)置:該系統(tǒng)能夠?qū)κ褂迷摴芾硐到y(tǒng)的用戶進(jìn)行管理,按照不同的身份提供不同的功能授權(quán)。比如讀者只能在系統(tǒng)上進(jìn)行查詢圖書信息和查詢自己的信息,管理員可以根據(jù)自己的權(quán)限不同獲得不同程度的系統(tǒng)操作權(quán)。比如設(shè)置某一個(gè)管理員只有處理借書的權(quán)限。</p><p>  系統(tǒng)查詢:管理員或

59、者讀者可以按條件查詢圖書檔案信息,圖書借閱信息,圖書借閱超期信息列表。并且可以根據(jù)這些信息進(jìn)行相關(guān)操作,比如讀者發(fā)現(xiàn)自己的某一個(gè)圖書要到期了,那么就會(huì)去圖書館進(jìn)行續(xù)借或者還書。</p><p>  口令更改:管理員或一般的操作員登陸系統(tǒng)后可以更改自己的登陸密碼。</p><p>  3.2 用例圖設(shè)計(jì)</p><p>  該圖書館管理系統(tǒng)的開發(fā)是一個(gè)比較復(fù)雜的軟件

60、工程,基于軟件工程思想,采用了UML表達(dá)圖書館管理系統(tǒng)的設(shè)計(jì)方式,提取類以及描述它們之間的協(xié)作關(guān)系,實(shí)現(xiàn)系統(tǒng)模型構(gòu)建。UML的用例圖(Use Case)較詳細(xì)和確切地描述了用戶的功能需求,使系統(tǒng)責(zé)任更為明確,是其他UML視圖的核心和基礎(chǔ),其他視圖的構(gòu)造和發(fā)展依賴于用例圖中所描述的內(nèi)容,系統(tǒng)的最終目標(biāo)就是提供用例視圖中描述的功能[7]。首先通過之前的需求分析建立該系統(tǒng)用例圖,從管理員和讀者登錄系統(tǒng)后所具體的權(quán)限和操作來描述了圖書館管理系統(tǒng)

61、的管理員,讀者和各個(gè)子系統(tǒng)之間的關(guān)系,如圖3-1圖書館管理系統(tǒng)用例圖所示。</p><p>  圖3-1 圖書館管理系統(tǒng)用例圖</p><p>  從用例圖中我們可以看出管理員和讀者之間對(duì)本系統(tǒng)所具有的用例。管理員所包含的用例有:口令管理:管理員可以通過登錄該系統(tǒng)進(jìn)行更改密碼的操作。讀者信息維護(hù):包括對(duì)讀者的增刪改和讀者信息的查詢。圖書館信息維護(hù):能夠?qū)D書館信息進(jìn)行維護(hù)更新操作。圖書查詢

62、:可以對(duì)所有圖書的詳細(xì)信息進(jìn)行查詢。圖書借閱:可以處理讀者的借閱請(qǐng)求。圖書歸還:可以處理讀者的歸還請(qǐng)求。圖書續(xù)借:可以處理讀者的續(xù)借請(qǐng)求。圖書信息維護(hù):可以實(shí)現(xiàn)書目的增刪改。管理員信息維護(hù):可以增刪改管理員賬戶,并且可以設(shè)置管理員對(duì)系統(tǒng)的操作權(quán)限。圖書借閱信息查看:可以查看現(xiàn)有已經(jīng)出借的書目信息。讀者所包含的用例有:讀者信息查詢:讀者在登錄系統(tǒng)后可以查詢自己的相關(guān)信息。圖書借閱:通過管理員進(jìn)行借書業(yè)務(wù)。圖書歸還:通過管理員進(jìn)行還書業(yè)務(wù)。

63、圖書續(xù)借:通過管理員進(jìn)行圖書續(xù)借業(yè)務(wù)。圖書借閱信息查看:可以查看自己所借書目的相關(guān)信息。</p><p>  3.3 實(shí)體類圖設(shè)計(jì)</p><p>  基于UML的系統(tǒng)分析階段另一個(gè)重要的工作就是特定域類的分析,即作出系統(tǒng)中的關(guān)鍵類,確定與該領(lǐng)域相關(guān)的概念,建立類圖。類圖是UML的核心技術(shù),表示該系統(tǒng)中類和類之間的關(guān)系,是對(duì)系統(tǒng)靜態(tài)結(jié)構(gòu)的描述。圖書館管理系統(tǒng)的域類主要包括圖書借閱(Bor

64、row),圖書信息(Book),圖書類型(BookType),讀者(Read),讀者信息(ReadType),管理員(Manger),圖書館信息(Library)??梢栽陬悎D中將這些域類和他們之間的關(guān)系表示出來。如圖3-2系統(tǒng)實(shí)體類設(shè)計(jì)圖。</p><p>  圖3-2系統(tǒng)實(shí)體類設(shè)計(jì)圖</p><p>  類圖說明:UML類圖中包括三個(gè)部分,類名稱,類屬性和類操作。上述幾個(gè)類中Borrow

65、類用于圖書的借閱、歸還、續(xù)借功能,并且在實(shí)現(xiàn)這三個(gè)功能的時(shí)候更新相應(yīng)的借閱信息,圖書信息和讀者信息,如更新借書日期,對(duì)應(yīng)的借閱人。Book類用于實(shí)現(xiàn)圖書的添加、刪除、更新,查詢功能,在實(shí)現(xiàn)添加、刪除、更新功能的時(shí)候都會(huì)更新相關(guān)圖書信息。BookType類用于設(shè)置圖書種類,不同類型的圖書可以借閱的最長天數(shù)是不同的。Read類用于實(shí)現(xiàn)讀者的添加、刪除、更新,主要用于管理讀者信息。ReadType類用于設(shè)置讀者類型,讀者類型的不同,所獲得的權(quán)

66、限也不同,比如可借書目的數(shù)量。Library 類用于保存圖書館相關(guān)信息,任何登錄的用戶都可以從中看到圖書館的簡介。Manger類用于處理上述幾個(gè)類的業(yè)務(wù)請(qǐng)求,比如圖書的借閱、歸還、續(xù)借都要通過Manger類才能得以完成。</p><p><b>  4 系統(tǒng)設(shè)計(jì)</b></p><p>  系統(tǒng)設(shè)計(jì)內(nèi)容主要包括:確定設(shè)計(jì)方針和方法,將系統(tǒng)分解為若干子系統(tǒng),確定各子系

67、統(tǒng)的目標(biāo)、功能及其相互關(guān)系,決定對(duì)子系統(tǒng)的管理體制和控制方式,對(duì)各子系統(tǒng)進(jìn)行技術(shù)設(shè)計(jì)和評(píng)價(jià)。通過上述系統(tǒng)分析,可以了解到該圖書館管理系統(tǒng)需要實(shí)現(xiàn)的主要功能模塊以及實(shí)現(xiàn)各個(gè)模塊的功能,下面就對(duì)整個(gè)系統(tǒng)的的功能做一個(gè)基于UML的系統(tǒng)設(shè)計(jì)。</p><p>  4.1 系統(tǒng)功能介紹</p><p>  下面介紹下該系統(tǒng)的功能:圖書員進(jìn)行借書業(yè)務(wù)處理,讀者需要還書的時(shí)候,可以讓管理員進(jìn)行還書業(yè)務(wù)

68、處理[8]。讀者信息管理:管理員可以添加和刪除讀者,并且可以對(duì)讀者的相關(guān)信息進(jìn)行修改保存。此外,還可以設(shè)置不同類型讀者的可借書目數(shù)量。系統(tǒng)設(shè)置:管理員可以在登陸系統(tǒng)后修改并保存圖書館簡介,此外還可以修改管理的操作權(quán)限??诹罡模汗芾韱T可以在自己登錄系統(tǒng)后,選擇口令更改,更改自己的密碼。</p><p>  圖4-1系統(tǒng)功能介紹圖</p><p><b>  4.2 用例設(shè)計(jì)&l

69、t;/b></p><p>  設(shè)計(jì)的最后階段是設(shè)計(jì)UML模型,也就是將前面設(shè)計(jì)的模型進(jìn)行擴(kuò)展和細(xì)化,這里的設(shè)計(jì)目的是產(chǎn)生一個(gè)可以使用的解決方案,并且可以方便的將方案轉(zhuǎn)換成程序代碼。時(shí)序圖就可以很好的滿足這個(gè)目的。它通過描述對(duì)象之間發(fā)送消息的時(shí)間順序顯示多個(gè)對(duì)象之間的動(dòng)態(tài)協(xié)作。它可以表示用例的行為順序,當(dāng)執(zhí)行一個(gè)用例行為時(shí),時(shí)序圖中的每條消息對(duì)應(yīng)了一個(gè)類操作或狀態(tài)機(jī)中引起轉(zhuǎn)換的觸發(fā)事件。時(shí)序圖主要用于描述對(duì)

70、象是如何交互的,并且將重點(diǎn)放在消息序列上[9]。</p><p>  根據(jù)需求分析階段的用例分析以及系統(tǒng)功能介紹,我們可以畫出流通子系統(tǒng)中主要用例的時(shí)序圖:</p><p> ?。?)首先我們來做用戶登錄時(shí)序圖,用戶在圖書館管理系統(tǒng)的登錄界面輸入用戶名和密碼,通過系統(tǒng)驗(yàn)證后就進(jìn)入了主界面。在主界面中,不同類型的用戶可以進(jìn)入不同的流通子系統(tǒng)。如管理員可以進(jìn)行圖書和讀者的管理等業(yè)務(wù),讀者可以進(jìn)

71、行書面的查詢等業(yè)務(wù)。其時(shí)序圖如圖4-2登錄時(shí)序圖。</p><p><b>  圖4-2登錄時(shí)序圖</b></p><p> ?。?)管理員通過身份驗(yàn)證后進(jìn)入主界面后,在流通子系統(tǒng)中可以進(jìn)行讀者信息的維護(hù),圖書信息的維護(hù),圖書的借閱、歸還、續(xù)借等活動(dòng)。讀者的信息維護(hù)包括讀者的添加、刪除、更改以及讀者類型的設(shè)置;圖書信息維護(hù)包括圖書的添加、刪除、更改。其時(shí)序圖如圖4-3

72、讀者信息管理時(shí)序圖。</p><p>  圖4-3讀者信息管理時(shí)序圖</p><p> ?。?)本系統(tǒng)的圖書借閱管理包括圖書的借閱、歸還以及續(xù)借三個(gè)功能,當(dāng)管理員進(jìn)行讀者的借還書業(yè)務(wù)時(shí),不但要同時(shí)修改借閱記錄從而顯示現(xiàn)在的借閱狀態(tài),還有同時(shí)修改讀者信息中的借閱圖書的信息,包括圖書的數(shù)量及圖書的名稱和庫存等相關(guān)信息。其時(shí)序圖如圖4-4圖書借閱管理時(shí)序圖。</p><p&g

73、t;  圖4-4圖書借閱管理時(shí)序圖</p><p>  (4)圖書添加是圖書館系統(tǒng)的另一項(xiàng)重要功能,管理員在進(jìn)入主界面后,在主界面的流通子系統(tǒng)中可以選擇圖書信息管理,選擇添加圖書,輸入書目的圖書類型,出版社,設(shè)置條形碼等信息后,這些信息都會(huì)存儲(chǔ)到圖書記錄中。其時(shí)序圖如圖4-5圖書添加時(shí)序圖。</p><p>  圖4-5圖書添加時(shí)序圖</p><p>  4.3

74、數(shù)據(jù)庫設(shè)計(jì)</p><p>  數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉庫,它使得數(shù)據(jù)管理不再僅僅是存儲(chǔ)和管理數(shù)據(jù),而轉(zhuǎn)變成用戶所需要的各種數(shù)據(jù)管理的方式。數(shù)據(jù)庫設(shè)計(jì)(Database Design)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲(chǔ)數(shù)據(jù),滿足各種用戶的應(yīng)用需求[10]。</p><p>  4.3.1

75、數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)</p><p>  針對(duì)該圖書管理信息系統(tǒng)的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計(jì)成如下數(shù)據(jù)項(xiàng)以及數(shù)據(jù)結(jié)構(gòu)[11]:</p><p>  (1)圖書類別信息:包括圖書類別編號(hào),名稱,該圖書類別可以外借的天數(shù)。</p><p>  (2)圖書信息:包括條形瑪,圖書名稱,圖書類型,作者,譯者,出版社,價(jià)格,頁碼,書架,添加時(shí)間,操作員,是否刪除,系統(tǒng)記錄編號(hào)。&l

76、t;/p><p>  (3)讀者類別信息:包括讀者類別編號(hào),讀者類別名稱,可借圖書數(shù)。</p><p>  (4)讀者信息:包括讀者姓名,讀者性別,讀者條形碼,讀者類型,職業(yè),出生日期,有效證件,證件號(hào)碼,電話,Email,備注,讀者加入時(shí)間,操作員。</p><p>  (5)圖書借閱信息:包括記錄編號(hào),圖書編號(hào),讀者編號(hào),借閱時(shí)間,歸還時(shí)間,是否已經(jīng)歸還,操作員。&

77、lt;/p><p>  (6)圖書歸還信息:包括記錄編號(hào),圖書編號(hào),讀者編號(hào),歸還時(shí)間,操作員。</p><p>  (7)圖書館信息:包括圖書館名稱,館長,聯(lián)系電話,聯(lián)系地址,圖書館網(wǎng)址,建館時(shí)間,圖書館簡介。</p><p>  (8)管理員信息:包括管理員id編號(hào),管理員帳號(hào)和管理員密碼。</p><p>  (9)管理員權(quán)限信息:包括管理

78、員id編號(hào),系統(tǒng)設(shè)置權(quán)限,讀者管理權(quán)限,圖書館管理權(quán)限,圖書借還權(quán)限,系統(tǒng)查詢權(quán)限。</p><p>  根據(jù)對(duì)數(shù)據(jù)項(xiàng)與數(shù)據(jù)結(jié)構(gòu)的分析,設(shè)計(jì)出能夠滿足系統(tǒng)需求的各種實(shí)體及它們之間的關(guān)系,以便之后設(shè)置邏輯結(jié)構(gòu)。根據(jù)設(shè)計(jì)規(guī)劃得出的實(shí)體有圖書類別信息實(shí)體,圖書信息實(shí)體,讀者類別信息實(shí)體,讀者信息實(shí)體,各個(gè)實(shí)體的屬性通過實(shí)體屬性圖表示如下面這些圖所示[12]。下列各圖中矩形代表該實(shí)體對(duì)象,它對(duì)應(yīng)數(shù)據(jù)庫中的一張數(shù)據(jù)表,而橢

79、圓形里的信息代表該數(shù)據(jù)對(duì)象的屬性,它對(duì)應(yīng)數(shù)據(jù)表中的字段信息。</p><p>  圖4-6 圖書類別實(shí)體屬性圖</p><p>  圖4-7 圖書信息實(shí)體屬性圖</p><p>  圖4-8 讀者類別信息實(shí)體屬性圖</p><p>  圖4-9 讀者信息實(shí)體屬性圖</p><p>  圖4-10圖書借閱信息實(shí)體屬性圖&

80、lt;/p><p>  圖4-11圖書歸還信息實(shí)體屬性圖</p><p>  圖4-12 操作員帳號(hào)信息實(shí)體屬性圖</p><p>  圖4-13 管理員信息實(shí)體屬性圖</p><p>  圖4-14 管理員權(quán)限信息屬性圖</p><p>  圖4-15 圖書館系統(tǒng)屬性圖</p><p>  4.3

81、.2 數(shù)據(jù)庫數(shù)據(jù)表設(shè)計(jì) </p><p>  表4-1圖書類別信息表</p><p>  表4-2 圖書信息表</p><p>  表4-3讀者類別信息表 </p><p>  表4-4讀者信息表 </p><p>  表4-5圖書借閱信息表 </p><p>  表4-6圖書歸還信息表

82、</p><p>  表4-7圖書館信息表 </p><p>  表4-8管理員信息表 </p><p>  表4-9管理員權(quán)限信息表 </p><p><b>  5 系統(tǒng)實(shí)現(xiàn)</b></p><p>  5.1 數(shù)據(jù)庫的連接</p><p>  在系統(tǒng)設(shè)計(jì)階段,已將

83、系統(tǒng)劃分為多個(gè)模塊,現(xiàn)在在詳細(xì)設(shè)計(jì)階段需要將它們按照一定的原則組裝起來,同時(shí)確定了每個(gè)功能及模塊之間的外部接口,并確定每個(gè)模塊具體執(zhí)行的過程。在本系統(tǒng)中,數(shù)據(jù)庫的訪問是使用的mysql的驅(qū)動(dòng)連接的,對(duì)數(shù)據(jù)庫的訪問操作如數(shù)據(jù)添加,修改,刪除查詢都在本類中實(shí)現(xiàn),各個(gè)業(yè)務(wù)層的實(shí)現(xiàn)都需要調(diào)用本數(shù)據(jù)層代碼的。</p><p>  package com.core;</p><p>  import

84、java.io.InputStream;</p><p>  import java.sql.*;</p><p>  import java.util.Properties;</p><p>  /*數(shù)據(jù)庫連接類*/</p><p>  public class ConnDB {</p><p>  public C

85、onnection conn = null;</p><p>  public Statement stmt = null;</p><p>  public ResultSet rs = null;</p><p>  private static String propFileName = "/com/connDB.properties";

86、//指定資源文件保存的位置</p><p>  private static Properties prop = new Properties();</p><p>  private static String dbClassName ="com.mysql.jdbc.Driver";</p><p>  private static Stri

87、ng dbUrl =</p><p>  "jdbc:mysql://127.0.0.1:3306/db_librarySys?user=root&password=123&useUnicode=true";</p><p>  public ConnDB(){</p><p><b>  try {</b>

88、</p><p>  InputStream in=getClass().getResourceAsStream(propFileName);</p><p>  prop.load(in);//通過輸入流對(duì)象加載Properties文件</p><p>  dbClassName = prop.getProperty("DB_CLASS_NAM

89、E");//獲取數(shù)據(jù)庫驅(qū)動(dòng)</p><p>  dbUrl = prop.getProperty("DB_URL",</p><p>  "jdbc:mysql://127.0.0.1:3306/db_librarySys?user=root&password=123&useUnicode=true");</p>

90、<p><b>  }</b></p><p>  catch (Exception e) {</p><p>  e.printStackTrace();//輸出異常信息</p><p><b>  }</b></p><p><b>  }</b><

91、/p><p>  public static Connection getConnection() {</p><p>  Connection conn = null;</p><p><b>  try {</b></p><p>  Class.forName(dbClassName).newInstance();&l

92、t;/p><p>  conn = DriverManager.getConnection(dbUrl);</p><p><b>  }</b></p><p>  catch (Exception ee) {</p><p>  ee.printStackTrace();</p><p><

93、b>  }</b></p><p>  if (conn == null) {</p><p>  System.err.println(</p><p>  "警告: DbConnectionManager.getConnection() 獲得數(shù)據(jù)庫鏈接失敗.\r\n\r\n鏈接類型:" +</p><p&

94、gt;  dbClassName + "\r\n鏈接位置:" + dbUrl);</p><p><b>  }</b></p><p>  return conn;</p><p><b>  }</b></p><p><b>  /*</b></

95、p><p>  * 功能:執(zhí)行查詢語句</p><p><b>  */</b></p><p>  public ResultSet executeQuery(String sql) {</p><p><b>  try {</b></p><p>  conn = getC

96、onnection();</p><p>  stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,</p><p>  ResultSet.CONCUR_READ_ONLY);</p><p>  rs = stmt.executeQuery(sql);</p><p>

97、  } catch (SQLException ex) {</p><p>  System.err.println(ex.getMessage());</p><p><b>  }</b></p><p>  return rs;</p><p><b>  }</b></p>&

98、lt;p><b>  /*</b></p><p>  * 功能:執(zhí)行更新操作</p><p><b>  */</b></p><p>  public int executeUpdate(String sql) {</p><p>  int result = 0;</p>

99、<p><b>  try {</b></p><p>  conn = getConnection();//調(diào)用getConnection()方法構(gòu)造Connection對(duì)象的一個(gè)實(shí)例conn</p><p>  stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,</

100、p><p>  ResultSet.CONCUR_READ_ONLY);</p><p>  result = stmt.executeUpdate(sql);//執(zhí)行更新操作</p><p>  } catch (SQLException ex) {</p><p>  result = 0;</p><p><

101、;b>  }</b></p><p>  return result;</p><p><b>  }</b></p><p><b>  /*</b></p><p>  * 功能:關(guān)閉數(shù)據(jù)庫的連接</p><p><b>  */</b&

102、gt;</p><p>  public void close() {</p><p><b>  try {</b></p><p>  if (rs != null) {</p><p>  rs.close();</p><p><b>  }</b></p>

103、;<p>  if (stmt != null) {</p><p>  stmt.close();</p><p><b>  }</b></p><p>  if (conn != null) {</p><p>  conn.close();</p><p><b>

104、  }</b></p><p>  } catch (Exception e) {</p><p>  e.printStackTrace(System.err);</p><p><b>  }</b></p><p><b>  }</b></p><p>&

105、lt;b>  }</b></p><p>  5.2 系統(tǒng)登陸模塊的實(shí)現(xiàn)</p><p>  在此系統(tǒng)中,需要登陸系統(tǒng)后才可以執(zhí)行圖書管理系統(tǒng)各個(gè)功能,關(guān)于登陸的界面設(shè)計(jì)如下,視圖層(View)在login.jsp中實(shí)現(xiàn),其中主要放置一個(gè)用戶輸入管理員帳號(hào)和一個(gè)輸入管理員密碼的密碼框,管理員輸入信息完畢后選擇確定按扭,首先使用客戶端js代碼對(duì)輸入的信息進(jìn)行完整性驗(yàn)證,驗(yàn)

106、證通過后該表單會(huì)將這些信息傳遞給manager.do?action=login(在login.jsp中)進(jìn)行處理,通過在Struts-config.xml文件中配置的映射信息這些信息會(huì)被傳遞給控制層的com.action.Manager類進(jìn)行處理。</p><p>  在控制層中,它首先取得參數(shù)action的信息,在本登陸模塊中,它的值是“l(fā)ogin”,然后控制層取得用戶登陸的ActionForm,該FormBe

107、an里保存了用戶輸入的帳號(hào)和密碼信息,控制層將該FormBean傳遞給業(yè)務(wù)層ManagerDAO的checkManager函數(shù)進(jìn)行處理,在該函數(shù)中,程序首先根據(jù)管理員帳號(hào)查詢記錄,如果查詢到了,再判斷密碼是否一致,如果一致業(yè)務(wù)層會(huì)返回1給控制層,否則返回0給控制層,控制層根據(jù)返回的結(jié)果如果是1說明登陸成功,程序會(huì)將管理員的帳號(hào)信息保存在session變量manager中,然后根據(jù)ActionForward的映射將頁面跳轉(zhuǎn)到管理首頁。登錄

108、系統(tǒng)的界面如圖5-1 所示。</p><p>  圖5-1 系統(tǒng)登陸界面</p><p>  關(guān)于登陸模塊的控制層和業(yè)務(wù)層實(shí)現(xiàn)關(guān)鍵代碼如下:</p><p>  //以下是控制層實(shí)現(xiàn)代碼:</p><p>  // 管理員身份驗(yàn)證</p><p>  public ActionForward managerLogin(

109、ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequest request, HttpServletResponse response) {</p><p>  ManagerForm managerForm = (ManagerForm) form;</p><p>  managerF

110、orm.setName(managerForm.getName());</p><p>  managerForm.setPwd(managerForm.getPwd());</p><p>  /*將存有管理員信息的formbean傳遞給DAO業(yè)務(wù)層處理(查詢是否存在該管理員帳號(hào)和密碼)*/</p><p>  int ret = managerDAO.check

111、Manager(managerForm);</p><p>  System.out.print("驗(yàn)證結(jié)果ret的值:" + ret);</p><p>  /*業(yè)務(wù)層如果返回1,表示驗(yàn)證成功*/</p><p>  if (ret == 1) {</p><p>  /*將用戶帳號(hào)保存在session中*/</p

112、><p>  HttpSession session = request.getSession();</p><p>  session.setAttribute("manager", managerForm.getName());</p><p>  /*交給控制器,跳轉(zhuǎn)到登陸成功的頁面*/</p><p>  return

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論