版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 沈陽(yáng)工業(yè)大學(xué)</b></p><p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p><b> 圖書(shū)館借閱管理系統(tǒng)</b></p><p> 學(xué)院(系): 計(jì)算機(jī)科學(xué)與技術(shù) </p><p><b> 專(zhuān)業(yè)班級(jí): <
2、;/b></p><p><b> 學(xué)生姓名: </b></p><p><b> 指導(dǎo)教師: </b></p><p><b> 目 錄</b></p><p><b> 摘 要III</b></p><p&g
3、t; 1. 緒 論1</p><p> 1.1畢業(yè)設(shè)計(jì)主要任務(wù)1</p><p> 1.2目前圖書(shū)管理系統(tǒng)存在的問(wèn)題1</p><p><b> 1.3課題意義1</b></p><p> 1.4論文的工作和安排2</p><p> 2.圖書(shū)借閱管理需求分析3</
4、p><p> 2.1 可行性分析3</p><p> 2.1.1 技術(shù)可行性3</p><p> 2.1.2.經(jīng)濟(jì)可行性3</p><p> 2.2 圖書(shū)借閱管理系統(tǒng)需求概述3</p><p> 2.2.1系統(tǒng)目標(biāo)3</p><p> 2.2.2用戶(hù)類(lèi)和用戶(hù)特性4</p
5、><p> 2.3 圖書(shū)借閱管理系統(tǒng)需求模型4</p><p> 2.3.1功能描述4</p><p> 2.3.2圖書(shū)管理員詳細(xì)功能描述5</p><p> 2.3.3讀者詳細(xì)功能描述5</p><p> 2.3.4主要用例的用例描述6</p><p><b> 3
6、.總體設(shè)計(jì)9</b></p><p> 3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)9</p><p> 3.1.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述9</p><p> 3.1.2圖書(shū)信息表結(jié)構(gòu)設(shè)計(jì)10</p><p> 3.1.3圖書(shū)類(lèi)型信息表結(jié)構(gòu)設(shè)計(jì)11</p><p> 3.1.4 讀者信息表結(jié)構(gòu)設(shè)計(jì)11</p>
7、;<p> 3.1.5讀者類(lèi)型信息表結(jié)構(gòu)設(shè)計(jì)12</p><p> 3.1.6圖書(shū)借閱信息表結(jié)構(gòu)設(shè)計(jì)12</p><p> 3.1.7圖書(shū)歸還信息表結(jié)構(gòu)設(shè)計(jì)13</p><p> 3.1.8用戶(hù)信息表結(jié)構(gòu)設(shè)計(jì)13</p><p> 3.1.9圖書(shū)館信息表結(jié)構(gòu)設(shè)計(jì)14</p><p>
8、 3.1.10辦證參數(shù)信息表結(jié)構(gòu)設(shè)計(jì)14</p><p> 3.2 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)15</p><p> 3.2.1圖書(shū)管理系統(tǒng)總體結(jié)構(gòu)圖15</p><p> 3.2.2 系統(tǒng)管理員模塊功能15</p><p> 3.2.3 讀者管理模塊功能16</p><p> 3.2.4 圖書(shū)管理模塊功能
9、16</p><p> 3.2.5 圖書(shū)借還模塊功能17</p><p> 3.2.6 系統(tǒng)查詢(xún)模塊功能18</p><p> 4.程序設(shè)計(jì)與編碼20</p><p> 4.1開(kāi)發(fā)平臺(tái)與工具20</p><p> 4.1.1 J2EE平臺(tái)20</p><p> 4.1.2
10、WEB服務(wù)器和數(shù)據(jù)庫(kù)20</p><p> 4.2程序設(shè)計(jì)21</p><p> 4.2.1程序設(shè)計(jì)概述21</p><p> 4.2.2數(shù)據(jù)庫(kù)與Web服務(wù)器的連接21</p><p> 4.2.3登錄模塊程序設(shè)計(jì)23</p><p> 4.2.4系統(tǒng)管理員功能模塊的實(shí)現(xiàn)25</p>
11、<p> 4.2.5讀者管理功能模塊的實(shí)現(xiàn)26</p><p> 4.2.6查詢(xún)功能模塊的實(shí)現(xiàn)27</p><p> 4.2.7圖書(shū)管理功能模塊的實(shí)現(xiàn)29</p><p> 4.2.8圖書(shū)借還功能模塊的實(shí)現(xiàn)30</p><p><b> 5.軟件測(cè)試33</b></p>&l
12、t;p> 5.1 軟件測(cè)試的方法與步驟33</p><p> 5.2 測(cè)試用例設(shè)計(jì)與測(cè)試用例的運(yùn)行過(guò)程及測(cè)試結(jié)果分析34</p><p> 5.2.1模塊測(cè)試34</p><p> 5.2.2集成測(cè)試35</p><p> 5.2.3 驗(yàn)收測(cè)試36</p><p><b> 5.3
13、 評(píng)價(jià)36</b></p><p><b> 6.結(jié)束語(yǔ)37</b></p><p> 6.1 工作成果37</p><p> 6.2 改進(jìn)意見(jiàn)37</p><p> 6.3 收獲體會(huì)37</p><p><b> 致 謝39</b>&l
14、t;/p><p><b> 摘 要</b></p><p> 隨著科學(xué)技術(shù)的進(jìn)步,計(jì)算機(jī)行業(yè)的迅速發(fā)展,大大提高人們的工作效率。計(jì)算機(jī)信息處理系統(tǒng)的引進(jìn)已徹底改變了許多系統(tǒng)的經(jīng)營(yíng)管理 。</p><p> 圖書(shū)管理系統(tǒng)是學(xué)校管理機(jī)制中的重要組成部分,通過(guò)對(duì)圖書(shū)管理系統(tǒng)的運(yùn)行管理機(jī)制進(jìn)行調(diào)查研究,開(kāi)發(fā)了此圖書(shū)系統(tǒng)。本系統(tǒng)中解決了學(xué)校圖書(shū)管理
15、事務(wù)中的常用基本問(wèn)題以及相關(guān)統(tǒng)計(jì)工作。本系統(tǒng)中包含6個(gè)功能模塊:系統(tǒng)設(shè)置,讀者管理,圖書(shū)管理,圖書(shū)借還,系統(tǒng)查詢(xún)和更改口令。</p><p> 本系統(tǒng)使有jsp進(jìn)行網(wǎng)頁(yè)界面的設(shè)計(jì),使用MVC設(shè)計(jì)模式,采用了開(kāi)源框架Struts,它采用了當(dāng)今軟件設(shè)計(jì)的最新技術(shù),具有開(kāi)發(fā)效率高、設(shè)計(jì)靈活、生成的軟件界面友好美觀等特點(diǎn)。本系統(tǒng)中通過(guò)JDBC驅(qū)動(dòng)和數(shù)據(jù)庫(kù)進(jìn)行無(wú)縫連接,后端的數(shù)據(jù)庫(kù)是mysql,也是一個(gè)開(kāi)源的數(shù)據(jù)庫(kù)系統(tǒng),
16、該數(shù)據(jù)庫(kù)具有較高的完整性,一致性和安全性。</p><p> 關(guān)鍵詞:圖書(shū)管理;信息管理;jsp;struts</p><p><b> 1. 緒 論</b></p><p> 1.1畢業(yè)設(shè)計(jì)主要任務(wù)</p><p> 1.實(shí)現(xiàn)圖書(shū)館對(duì)所藏圖書(shū)的按類(lèi)別、書(shū)名等多方面的查詢(xún),最大的方便讀者和圖書(shū)館工作人員對(duì)所需
17、圖書(shū)的查詢(xún);</p><p> 2.建立圖書(shū)館外借讀者數(shù)據(jù)庫(kù),方便工作人員對(duì)讀者進(jìn)行有效管理;</p><p> 3.建立圖書(shū)館工作人員數(shù)據(jù)庫(kù),限定每個(gè)工作人員對(duì)軟件操作的權(quán)限,最大限度的保護(hù)數(shù)據(jù)庫(kù);</p><p> 4.實(shí)現(xiàn)圖書(shū)館對(duì)新書(shū)入庫(kù),舊書(shū)注銷(xiāo)的簡(jiǎn)單處理,并且建立書(shū)籍檔案,方便進(jìn)貨;</p><p><b> 5.
18、實(shí)現(xiàn)圖書(shū)館</b></p><p> 1.2目前圖書(shū)管理系統(tǒng)存在的問(wèn)題</p><p> 1)檢索速度慢、效率低</p><p> 因?yàn)閳D書(shū)館的藏書(shū)種類(lèi)多、數(shù)量多,將藏書(shū)準(zhǔn)確地分門(mén)別類(lèi),快速檢索,手工進(jìn)行非常困難往往是終于查到了二偉的信息,館中沒(méi)有此書(shū)或已被別人借走。圖書(shū)館的規(guī)模越大,這個(gè)問(wèn)題越突出。</p><p> 2
19、)借書(shū)、還書(shū)工作量大</p><p> 借書(shū)、還書(shū)頻率越大,說(shuō)明圖書(shū)館的作用越大,然而隨之而來(lái)的大量的借書(shū)、還書(shū)登記、實(shí)存圖書(shū)的更新以及借出圖書(shū)超期、遺失等的處理,其工作量之大,往往是人工操作所難以勝任的。而且經(jīng)常會(huì)出現(xiàn)這樣那樣的差錯(cuò)。</p><p> 3)圖書(shū)統(tǒng)計(jì)工作難、藏書(shū)更新不能及時(shí)完成。</p><p> 圖書(shū)館的圖書(shū)應(yīng)根據(jù)科學(xué)技術(shù)的發(fā)展和教學(xué)工作的
20、需要及時(shí)添加和更新,然而由于藏書(shū)數(shù)量及圖書(shū)種類(lèi)越來(lái)越多,加上自然損耗,人為破壞,使圖書(shū)的統(tǒng)計(jì)工作難以及時(shí)完成,藏書(shū)的更新也就很難有針對(duì)性地進(jìn)行,藏書(shū)的知識(shí)結(jié)構(gòu)得不到良好地控制。</p><p> 我校也是一所發(fā)展中的高校,近兒年的發(fā)展速度很快,圖書(shū)館的規(guī)模和藏書(shū)數(shù)量也不斷的擴(kuò)大,為了解決海量圖書(shū)的管理問(wèn)題,改變傳統(tǒng)的管理方式也是迫在眉睫了。</p><p><b> 1.3課
21、題意義</b></p><p> 隨著計(jì)算機(jī)的廣泛應(yīng)用,其逐步成為現(xiàn)代化的標(biāo)志。圖書(shū)館或者一些企業(yè)內(nèi)部,甚至是書(shū)店,在正常運(yùn)行過(guò)程中總是面對(duì)大量的讀者信息,書(shū)籍信息以及兩者相互作用產(chǎn)生的借書(shū)信息、還書(shū)信息。因此需要對(duì)讀者資源、書(shū)籍資源、借書(shū)信息、還書(shū)信息進(jìn)行管理,及時(shí)了解各個(gè)環(huán)節(jié)中信息的變更,要對(duì)因此而產(chǎn)生的單據(jù)進(jìn)行及時(shí)的處理,為了提高圖書(shū)館或者企業(yè)內(nèi)部對(duì)圖書(shū)存銷(xiāo)的自動(dòng)化的管理,能夠更快速的滿足讀者
22、的要求,提高各種工作的效率,現(xiàn)對(duì)其設(shè)計(jì)相應(yīng)的系統(tǒng),以達(dá)到上述的目的[1]。</p><p> 圖書(shū)管理系統(tǒng)的主要功能是實(shí)現(xiàn)圖書(shū)館圖書(shū)借閱和歸還的管理的自動(dòng)化。圍繞這一主要功能,本系統(tǒng)涉及到以下核心功能:借閱管理,歸還管理。除了這些核心功能外,還包括一些基本和輔助功能,它們是:用戶(hù)管理、圖書(shū)館參數(shù)管理、圖書(shū)管理、統(tǒng)計(jì)查詢(xún)。</p><p> 1.4論文的工作和安排</p>
23、<p> 本次設(shè)計(jì)的目標(biāo)是,開(kāi)發(fā)一個(gè)圖書(shū)館借閱管理系統(tǒng)。借助該系統(tǒng),管理員通過(guò)快捷可靠的數(shù)據(jù)庫(kù)管理,方便的管理圖書(shū)館的信息資料,規(guī)范化的管理讀者用戶(hù),設(shè)定不同用戶(hù)權(quán)限,并能通過(guò)互聯(lián)網(wǎng)向讀者提供更為方便的在線查詢(xún)服務(wù),方便讀者的使用,最終達(dá)到提高圖書(shū)館資源利用效率的目的。</p><p> 論文設(shè)計(jì)和實(shí)現(xiàn)了圖書(shū)借閱管理系統(tǒng)系統(tǒng),可以根據(jù)用戶(hù)的不同權(quán)限,對(duì)圖書(shū)館的的各種信息進(jìn)行添加、刪除、修改或查詢(xún)操作
24、。論文分為五個(gè)部分:</p><p> 第一章即本章緒論,簡(jiǎn)述圖書(shū)館借閱管理系統(tǒng)這個(gè)課題的背景情況以及開(kāi)發(fā)本系統(tǒng)的意義。</p><p> 第二章為需求分析,本章中明確了系統(tǒng)需要實(shí)現(xiàn)的功能,分析了系統(tǒng)的用例,并介紹根據(jù)系統(tǒng)的需求選擇的開(kāi)發(fā)工具和技術(shù)的概況。</p><p> 第三章是總體設(shè)計(jì),詳細(xì)描述了本系統(tǒng)中數(shù)據(jù)庫(kù)的設(shè)計(jì)情況,并給出了系統(tǒng)總體界面的設(shè)計(jì)方案。
25、 </p><p> 第四章為程序設(shè)計(jì)與編碼各主要功能模塊的實(shí)現(xiàn)方法和部分關(guān)鍵代碼,同時(shí)提供了個(gè)主要界面運(yùn)行的參考圖片,以更直觀了解系統(tǒng)的實(shí)現(xiàn)情況。</p><p> 第五章是軟件測(cè)試,測(cè)試系統(tǒng)功能實(shí)現(xiàn)并對(duì)測(cè)試結(jié)果進(jìn)行記錄分析</p><p> 第六章為結(jié)束語(yǔ),為此次畢業(yè)設(shè)計(jì)做一個(gè)總結(jié),總結(jié)所獲得的經(jīng)驗(yàn)和體會(huì)。</p><p> 2.
26、圖書(shū)借閱管理需求分析</p><p><b> 2.1 可行性分析</b></p><p> 采用現(xiàn)代化統(tǒng)一的計(jì)算機(jī)信息網(wǎng)站系統(tǒng),能夠有效優(yōu)化圖書(shū)館管理系統(tǒng),使其高效的發(fā)揮最大作用,能夠迅捷的為讀者提供相應(yīng)的服務(wù)。開(kāi)發(fā)本系統(tǒng)的可行性研究如下:</p><p> 2.1.1 技術(shù)可行性</p><p> 技術(shù)上的可
27、行性分析主要分析技術(shù)條件能否順利完成開(kāi)發(fā)工作,軟、硬件能否滿足需要。本系統(tǒng)采用JSP開(kāi)發(fā)出友好美觀的人機(jī)界面,便于用戶(hù)理解、操作。數(shù)據(jù)庫(kù)管理系統(tǒng)采用MySQL,它能夠處理大量數(shù)據(jù),同時(shí)保持?jǐn)?shù)據(jù)的完整性、安全性。因此本系統(tǒng)的開(kāi)發(fā)平臺(tái)已成熟可行。硬件方面,在科技飛速發(fā)展的今天,硬件更新速度越來(lái)越快,容量越來(lái)越大,可靠性越來(lái)越高,價(jià)格越來(lái)越便宜,因此硬件平臺(tái)也能夠滿足本系統(tǒng)所需[2]。</p><p> 2.1.2.
28、經(jīng)濟(jì)可行性</p><p> 鑒于計(jì)算機(jī)技術(shù)發(fā)展異常迅猛,在硬件軟件配置以及開(kāi)發(fā)技術(shù)均以可行的情況下開(kāi)發(fā)這樣一個(gè)管理系統(tǒng)成本不會(huì)很高,但其可以大大提高圖書(shū)館的工作效率,也是圖書(shū)館管理發(fā)展的必然趨勢(shì),其必將有比較寬闊的市場(chǎng),因此改性統(tǒng)在經(jīng)濟(jì)可行性上時(shí)可行的[2]。</p><p> 2.2 圖書(shū)借閱管理系統(tǒng)需求概述</p><p><b> 2.2.1
29、系統(tǒng)目標(biāo)</b></p><p> 該系統(tǒng)主要建立一個(gè)基于B/S模式的圖書(shū)館借閱管理系統(tǒng),面對(duì)當(dāng)起很多小型圖書(shū)管理仍是人工管理帶來(lái)的檢索速度慢,效率低,借閱歸還圖書(shū)量大,圖書(shū)統(tǒng)計(jì)工作量大,藏書(shū)不能完成及時(shí)更新的問(wèn)題,該系統(tǒng)可以對(duì)跟系統(tǒng)的三個(gè)用戶(hù)類(lèi)型的使用實(shí)現(xiàn):</p><p> 1.對(duì)于讀者在本系統(tǒng)的應(yīng)用下可實(shí)現(xiàn)按照各種方式(如:書(shū)名,編號(hào),作者)查詢(xún)圖書(shū)館的藏書(shū)請(qǐng)客,方便
30、的借閱圖書(shū),續(xù)借圖書(shū),歸還圖書(shū),能夠查詢(xún)自己的借閱圖書(shū)情況。</p><p> 2.對(duì)于圖書(shū)館工作人員能夠?qū)崿F(xiàn)方便的對(duì)圖書(shū)進(jìn)行查詢(xún),方便的進(jìn)行讀者借閱情況查詢(xún),方便的進(jìn)行借書(shū)還書(shū)處理等,便捷的對(duì)圖書(shū)信息進(jìn)行添加、修改、刪除,分類(lèi)管理等操作,對(duì)讀者信息進(jìn)行相關(guān)添加,修改,分類(lèi)管理等操作。</p><p> 3.對(duì)于系統(tǒng)管理員可以對(duì)圖書(shū)館信息進(jìn)行修改更新操作,對(duì)系統(tǒng)用戶(hù)進(jìn)行添加、修改、刪除
31、、權(quán)限設(shè)置等操作,對(duì)圖書(shū)館的辦證參數(shù)進(jìn)行修改維護(hù)等操作功能。</p><p> 2.2.2用戶(hù)類(lèi)和用戶(hù)特性</p><p> 圖書(shū)借閱管理系統(tǒng)是一個(gè)基于B/S模式的對(duì)圖書(shū)館進(jìn)行高效率管理的應(yīng)用系統(tǒng),它的用戶(hù)主要是讀者和圖書(shū)管理員,學(xué)生通過(guò)該系統(tǒng)進(jìn)行圖書(shū)查詢(xún)進(jìn)而對(duì)自己需要的圖書(shū)進(jìn)行借閱及自己的借閱情況進(jìn)行查詢(xún),圖書(shū)管理員則通過(guò)本系統(tǒng)實(shí)現(xiàn)對(duì)圖書(shū)及讀者的高效管理,除此之外,還需要一個(gè)系統(tǒng)管理
32、員對(duì)不同的用戶(hù)進(jìn)行權(quán)限的設(shè)置等操作[2]。</p><p> 三類(lèi)用戶(hù)的具體描述如下表所示:</p><p> 表2.1用戶(hù)具體描述</p><p> 2.3 圖書(shū)借閱管理系統(tǒng)需求模型</p><p><b> 2.3.1功能描述</b></p><p> 圖書(shū)借閱管理系統(tǒng)的主要任務(wù)是實(shí)
33、現(xiàn)讀者迅速檢索查詢(xún),方便借閱歸還圖書(shū),圖書(shū)管理員高效的完成系統(tǒng)的各項(xiàng)基本操作,系統(tǒng)管理員是管理用戶(hù)設(shè)置權(quán)限等操作[3],從圖2.1可以看出圖書(shū)借閱管理系統(tǒng)要完成一下功能:</p><p><b> 1. 登錄。</b></p><p> 讀者、圖書(shū)管理員,系統(tǒng)管理員進(jìn)入該系統(tǒng)必須登錄,身份驗(yàn)證正確了才可以進(jìn)入該系統(tǒng),以不同身份進(jìn)入該系統(tǒng)所對(duì)應(yīng)的系統(tǒng)使用權(quán)限是不同的
34、。</p><p> 2. 系統(tǒng)設(shè)置功能:</p><p> 系統(tǒng)管理員可以設(shè)置圖書(shū)館相關(guān)的參數(shù)信息。</p><p><b> 3.用戶(hù)管理功能:</b></p><p> 對(duì)系統(tǒng)用戶(hù)進(jìn)行添加,修改,刪除,權(quán)限設(shè)置等操作。</p><p><b> 4.查詢(xún)功能:</b
35、></p><p> 對(duì)圖書(shū)館的館藏圖書(shū),借閱歷史,讀者用戶(hù)等信息進(jìn)行查詢(xún)。</p><p><b> 5.其他功能</b></p><p> 系統(tǒng)管理員可以修改自己的密碼,并且擁有其他用戶(hù)所擁有的所有功能。</p><p> 下面的系統(tǒng)用例圖描述了整個(gè)系統(tǒng)用戶(hù)之間的動(dòng)作聯(lián)系,及功能模塊的概述[4]。<
36、;/p><p><b> 圖2.1系統(tǒng)用例圖</b></p><p> 2.3.2圖書(shū)管理員詳細(xì)功能描述</p><p><b> 讀者管理功能:</b></p><p> 對(duì)讀者的類(lèi)型和讀者檔案進(jìn)行管理,包括添加,修改,刪除讀者類(lèi)型和讀者用戶(hù)的相關(guān)信息,管理不同類(lèi)型讀者借閱圖書(shū)的數(shù)量。<
37、/p><p><b> 圖書(shū)管理功能:</b></p><p> 包括對(duì)圖書(shū)類(lèi)型和具體圖書(shū)信息的管理,可以增加,修改,刪除圖書(shū),豐富具體圖書(shū)的信息,對(duì)不同圖書(shū)進(jìn)行分類(lèi)操作。</p><p><b> 圖書(shū)借閱功能:</b></p><p> 可以完成對(duì)讀者借閱,續(xù)接和還書(shū)的操作。</p&g
38、t;<p><b> 系統(tǒng)查詢(xún)功能:</b></p><p> 查詢(xún)圖書(shū)相關(guān)資料,借閱歷史和借閱到期題型.</p><p><b> 修改密碼功能:</b></p><p> 可以修改自己的登錄密碼。</p><p> 2.3.3讀者詳細(xì)功能描述</p><
39、;p> 1) 修改登陸密碼:</p><p> 修改自己的登錄密碼。</p><p><b> 2) 查詢(xún)功能:</b></p><p> 對(duì)圖書(shū)館圖書(shū)信息進(jìn)行查詢(xún),對(duì)自己當(dāng)前借閱書(shū)籍進(jìn)行查詢(xún),對(duì)圖書(shū)規(guī)劃到期題型進(jìn)行查看。</p><p> 2.3.4主要用例的用例描述</p><p&
40、gt; 圖書(shū)借閱借閱管理系統(tǒng)涉及到的用例包括:圖書(shū)借閱,圖書(shū)歸還,讀書(shū)查詢(xún),讀者信息管理,圖書(shū)信息管理,用戶(hù)管理等,現(xiàn)就系統(tǒng)的主要用例圖書(shū)借閱,圖書(shū)歸還,圖書(shū)查詢(xún)進(jìn)行詳細(xì)分析。</p><p> 1)用例“圖書(shū)借閱”</p><p> 2)用例“圖書(shū)歸還”</p><p> 3)用例“圖書(shū)查詢(xún)”</p><p><b>
41、3.總體設(shè)計(jì)</b></p><p><b> 3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 3.1.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述</p><p> 數(shù)據(jù)庫(kù)是整個(gè)系統(tǒng)的基石,數(shù)據(jù)庫(kù)的設(shè)計(jì)優(yōu)劣直接影響到整個(gè)系統(tǒng)的設(shè)計(jì)成敗,本節(jié)對(duì)數(shù)據(jù)庫(kù)的設(shè)計(jì)進(jìn)行專(zhuān)門(mén)闡述[5]。</p><p> 數(shù)據(jù)庫(kù)是數(shù)據(jù)管理的最新技術(shù)。十多年來(lái)
42、數(shù)據(jù)庫(kù)管理系統(tǒng)已從專(zhuān)用的應(yīng)用程序發(fā)展成為通用的系統(tǒng)軟件。由于數(shù)據(jù)庫(kù)具有數(shù)據(jù)結(jié)構(gòu)化,最低冗余度,較高的程序與數(shù)據(jù)獨(dú)立性,易于擴(kuò)充,易于編制應(yīng)用程序等優(yōu)點(diǎn),較大的信息系統(tǒng)都是建立在數(shù)據(jù)庫(kù)設(shè)計(jì)之上的。因此不僅大型計(jì)算機(jī)及中小型計(jì)算機(jī),甚至微型機(jī)都配有數(shù)據(jù)庫(kù)管理系統(tǒng)[6]。</p><p> 數(shù)據(jù)庫(kù)系統(tǒng)的出現(xiàn)使信息系統(tǒng)從以加工數(shù)據(jù)的程序?yàn)橹行霓D(zhuǎn)向圍繞共享的數(shù)據(jù)庫(kù)為中心的新階段。這樣既便于數(shù)據(jù)的集中管理,又有利于應(yīng)用程序
43、的研制和維護(hù),提高了數(shù)據(jù)的利用性和相容性,提高了決策的可靠性。目前,數(shù)據(jù)庫(kù)已經(jīng)成為現(xiàn)代信息系統(tǒng)不可分割的重要組成部分。數(shù)據(jù)庫(kù)技術(shù)也是計(jì)算機(jī)領(lǐng)域中發(fā)展最快的技術(shù)之一。</p><p> 數(shù)據(jù)庫(kù)設(shè)計(jì)是把現(xiàn)實(shí)世界的實(shí)體模型與需求轉(zhuǎn)換成數(shù)據(jù)庫(kù)的模型的過(guò)程,它是建立數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的核心問(wèn)題。數(shù)據(jù)庫(kù)及其應(yīng)用的性能都建立在良好的數(shù)據(jù)庫(kù)設(shè)計(jì)的基礎(chǔ)之上,數(shù)據(jù)庫(kù)的數(shù)據(jù)是一切操作的基礎(chǔ),如果數(shù)據(jù)庫(kù)設(shè)計(jì)不好,那么其它一切用于提高數(shù)據(jù)庫(kù)
44、性能的方法收效都是有限的。數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵是如何使設(shè)計(jì)的數(shù)據(jù)庫(kù)能合理地存儲(chǔ)用戶(hù)的數(shù)據(jù),方便用戶(hù)進(jìn)行數(shù)據(jù)處理[6]。</p><p> 設(shè)計(jì)數(shù)據(jù)庫(kù)必須遵循一定的規(guī)則,在關(guān)系型數(shù)據(jù)庫(kù)中,這種規(guī)則就是范式,范式是符合某一種級(jí)別的關(guān)系模式的集合。一般人們?cè)O(shè)計(jì)數(shù)據(jù)庫(kù)遵循第三范式。即:數(shù)據(jù)庫(kù)表中不包含已在其他表中包含的非主關(guān)鍵字信息。采用范式減少了數(shù)據(jù)冗余,節(jié)約了存儲(chǔ)空間,同時(shí)加快了增、刪、改的速度[6]。</p&g
45、t;<p> 整個(gè)系統(tǒng)所包括的信息有圖書(shū)信息、讀者信息、留言信息、圖書(shū)借閱信息、圖書(shū)歸還信息、系統(tǒng)用戶(hù)信息、讀者類(lèi)型信息??蓪⑦@些信息抽象為下列系統(tǒng)所需要的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):</p><p> 1)圖書(shū)信息(編號(hào),圖書(shū)名稱(chēng),圖書(shū)類(lèi)型,作者,譯者,ISBN號(hào),價(jià)格,出版社,所在書(shū)架,入庫(kù)時(shí)間,操作員)</p><p> 2)圖書(shū)類(lèi)型(編號(hào),名稱(chēng),可借閱天數(shù))</p&
46、gt;<p> 3)讀者信息(編號(hào),姓名,性別,條形碼,讀者類(lèi)型,出生年月,有效證件,證件號(hào)碼,登記日期,電話,郵箱,操作員)</p><p> 4)讀者類(lèi)型(名稱(chēng),可借閱圖書(shū)本數(shù))</p><p> 5)圖書(shū)借閱信息(圖書(shū)編號(hào),讀者ID,借出時(shí)間,應(yīng)還時(shí)間,是否歸還,操作員)</p><p> 6)圖書(shū)歸還信息(圖書(shū)編號(hào),讀者ID,歸還時(shí)間,
47、操作員)</p><p> 7)用戶(hù)(編號(hào),用戶(hù)名稱(chēng),密碼)</p><p> 8)圖書(shū)館信息(編號(hào),名稱(chēng),館長(zhǎng),電話,地址,郵箱,創(chuàng)建日期,簡(jiǎn)介)</p><p> 圖書(shū)館參數(shù)信息(編號(hào),辦證費(fèi)用,有效期限)</p><p> 注:帶下劃線表示主鍵</p><p> 在這里使用E-R圖描述了圖書(shū)借閱管理系統(tǒng)
48、的數(shù)據(jù)模型。圖3.1圖書(shū)借閱管理系統(tǒng)E-R圖描述了該系統(tǒng)所涉及到的實(shí)體以及他們之間的關(guān)系。具體結(jié)構(gòu)如下圖所示:</p><p> 圖3.1 系統(tǒng)E-R 圖</p><p> 3.1.2圖書(shū)信息表結(jié)構(gòu)設(shè)計(jì)</p><p> 圖書(shū)信息表主要用于存儲(chǔ)圖書(shū)館中所藏圖書(shū)的相關(guān)信息,其中的相關(guān)信息是在圖書(shū)入庫(kù)時(shí)由操作員進(jìn)行添加完善,此表主要用于讀者和圖書(shū)管理員對(duì)館中圖書(shū)的
49、查詢(xún),系統(tǒng)用戶(hù)根據(jù)圖書(shū)的某個(gè)屬性進(jìn)行查詢(xún),便可得知圖書(shū)的其他相關(guān)信息,其中圖書(shū)所在書(shū)架屬性是便于讀者借閱時(shí)對(duì)圖書(shū)的尋找,圖書(shū)價(jià)格是在讀者不慎將圖書(shū)遺失時(shí)對(duì)遺失圖書(shū)進(jìn)行賠償?shù)囊罁?jù)。表的具體結(jié)果如下:</p><p> 表3.2圖書(shū)信息表tb_bookinfo</p><p> 3.1.3圖書(shū)類(lèi)型信息表結(jié)構(gòu)設(shè)計(jì)</p><p> 該表的設(shè)計(jì)主要是方便對(duì)圖書(shū)的分類(lèi),
50、和對(duì)圖書(shū)的查詢(xún),在實(shí)際應(yīng)用中圖書(shū)管理員就是根據(jù)圖書(shū)類(lèi)型的不同將之分列在不同的書(shū)架,以方便讀者的借閱尋找,其中可借閱天數(shù)項(xiàng)設(shè)置了不同類(lèi)型圖書(shū)的借閱期限,可根據(jù)圖書(shū)的具體情況進(jìn)行不同的維護(hù)管理,表的具體結(jié)構(gòu)設(shè)計(jì)如下:</p><p> 表3.3圖書(shū)類(lèi)型信息表tb_booktype</p><p> 3.1.4 讀者信息表結(jié)構(gòu)設(shè)計(jì)</p><p> 讀者信息表的設(shè)計(jì)
51、是為了圖書(shū)館管理員對(duì)讀者進(jìn)行管理,其中讀者ID,不同類(lèi)型證件的號(hào)碼都是唯一的,是讀者在借閱圖書(shū)時(shí)需要輸入對(duì)讀者身份進(jìn)行識(shí)別的信息,讀者郵件電話等信息室為了與讀者進(jìn)行聯(lián)系,讀者類(lèi)型信息決定了讀者一次性可借閱的圖書(shū)的數(shù)量,注冊(cè)時(shí)間可用于查詢(xún)計(jì)算讀者身份有效的期限,操作員是為了便于對(duì)信息才操作的查詢(xún)。表的具體結(jié)構(gòu)設(shè)計(jì)如下:</p><p> 表3.4讀者信息表tb_reader</p><p>
52、; 3.1.5讀者類(lèi)型信息表結(jié)構(gòu)設(shè)計(jì)</p><p> 此表的設(shè)計(jì)是為了對(duì)不同身份的讀者進(jìn)行分類(lèi)方便讀者的管理,其中可借閱圖書(shū)數(shù)量的屬性設(shè)定,是根據(jù)讀者需求的不同對(duì)起權(quán)限進(jìn)行的設(shè)置,用于規(guī)定不同類(lèi)型讀者一次可借閱的圖書(shū)數(shù)量,表的具體結(jié)構(gòu)設(shè)計(jì)如下:</p><p> 表3.5 讀者類(lèi)型信息表tb_readertype</p><p> 3.1.6圖書(shū)借閱信息表
53、結(jié)構(gòu)設(shè)計(jì)</p><p> 該表的設(shè)計(jì)是用于對(duì)讀者借閱圖書(shū)進(jìn)行管理,表中圖書(shū)ID屬性是對(duì)借閱圖書(shū)的唯一性識(shí)別標(biāo)識(shí),讀者ID號(hào)記錄借閱的相應(yīng)讀者,結(jié)出時(shí)間記錄了相應(yīng)的歸還時(shí)間,以及歸還時(shí)是否超時(shí),操作員是對(duì)借閱進(jìn)行操作的人員的記錄方便日后的查詢(xún),是否歸還標(biāo)識(shí)可查詢(xún)當(dāng)起讀書(shū)是否被歸還,表的具體結(jié)構(gòu)設(shè)計(jì)如下:</p><p> 表 3.6 圖書(shū)借閱信息表 tb_borrow</p&g
54、t;<p> 3.1.7圖書(shū)歸還信息表結(jié)構(gòu)設(shè)計(jì)</p><p> 與圖書(shū)借閱信息表形成對(duì)照的是圖書(shū)歸還信息表,該表的設(shè)計(jì)除了像上表一樣把借閱的圖書(shū)與相應(yīng)的借閱者進(jìn)行對(duì)應(yīng)的聯(lián)系以外還記錄了讀者應(yīng)歸還圖書(shū)的時(shí)間,以此判斷讀者的借閱是否超時(shí),表的具體結(jié)構(gòu)設(shè)計(jì)如下:</p><p> 表 3.7圖書(shū)歸還信息表tb_giveback</p><p> 3
55、.1.8用戶(hù)信息表結(jié)構(gòu)設(shè)計(jì)</p><p> 該表的設(shè)計(jì)用于記錄圖書(shū)管理系統(tǒng)用戶(hù)的信息,方便對(duì)用戶(hù)的管理,表中包括用戶(hù)ID 和用戶(hù)的登錄密碼,表的具體結(jié)構(gòu)設(shè)計(jì)如下:</p><p> 表 3.8系統(tǒng)用戶(hù)信息表tb_user</p><p> 3.1.9圖書(shū)館信息表結(jié)構(gòu)設(shè)計(jì)</p><p> 該表包含了圖書(shū)館的名稱(chēng),地址,聯(lián)系方式,建館
56、時(shí)間,簡(jiǎn)介等信息,是對(duì)圖書(shū)館基本屬性信息的描述,方便外界讀者對(duì)圖書(shū)館的了解,表的具體結(jié)構(gòu)設(shè)計(jì)如下:</p><p> 表3.9圖書(shū)館信息表 tb_library </p><p> 3.1.10辦證參數(shù)信息表結(jié)構(gòu)設(shè)計(jì)</p><p> 該表是為校外人員設(shè)計(jì)的,對(duì)于需要到圖書(shū)館進(jìn)行借閱的讀者可辦理臨時(shí)的借閱證用于對(duì)圖書(shū)的借閱憑證,表中包含了辦證所需費(fèi)用以及證件的
57、有效期限,表的具體結(jié)果設(shè)計(jì)如下:</p><p> 表3.10圖書(shū)證參數(shù)信息表tb_parameter</p><p> 3.2 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)</p><p> 該系統(tǒng)在Windows98/2000/XP環(huán)境下,主要采用JSP開(kāi)發(fā)工具,MySQL數(shù)據(jù)庫(kù)來(lái)設(shè)計(jì),開(kāi)發(fā)過(guò)程與成果應(yīng)符合GB/T 11457-1995軟件工程術(shù)語(yǔ),GB/T 8567-1988計(jì)算機(jī)
58、軟件產(chǎn)品開(kāi)發(fā)文件編制指南等[7]。</p><p> 3.2.1圖書(shū)管理系統(tǒng)總體結(jié)構(gòu)圖</p><p> 繪制系統(tǒng)結(jié)構(gòu)圖的過(guò)程,實(shí)際上就是對(duì)系統(tǒng)功能模塊進(jìn)行分解設(shè)計(jì)的過(guò)程,即合理地將數(shù)據(jù)流程圖轉(zhuǎn)變?yōu)樗枰南到y(tǒng)結(jié)構(gòu)圖[8]。</p><p> 系統(tǒng)結(jié)構(gòu)圖將會(huì)使讀者和用戶(hù)能直觀的了解系統(tǒng)的結(jié)構(gòu)模式,理解系統(tǒng)的各個(gè)功能的結(jié)構(gòu),能很好地方便用戶(hù)使用和理解整個(gè)系統(tǒng)。&
59、lt;/p><p> 本系統(tǒng)的結(jié)構(gòu)圖如下:</p><p> 圖3.3系統(tǒng)總體結(jié)構(gòu)圖</p><p> 根據(jù)需求分析的結(jié)果,按照“低耦合、高內(nèi)聚”的原則,本系統(tǒng)將劃分為以下主要功能模塊:系統(tǒng)管理員功能模塊,讀者管理功能模塊,圖書(shū)管理功能模塊,圖書(shū)借還功能模塊;系統(tǒng)查詢(xún)功能模塊[8]。</p><p> 3.2.2 系統(tǒng)管理員模塊功能<
60、;/p><p> 該模塊主要包括圖書(shū)館信息設(shè)置,用戶(hù)管理,參數(shù)設(shè)置,書(shū)架設(shè)置。</p><p><b> 1.圖書(shū)館信息設(shè)置</b></p><p> 該功能選項(xiàng)用于系統(tǒng)管理員對(duì)圖書(shū)館名稱(chēng),地址,聯(lián)系方式,簡(jiǎn)介等信息的管理更新,以便于讀者和外界人士對(duì)圖書(shū)館的了解。該功能是對(duì)td_library表進(jìn)行維護(hù)修改等操作,修改后的信息將被保存在該表中
61、。</p><p><b> 2.用戶(hù)設(shè)置</b></p><p> 該功能子模塊主要是系統(tǒng)管理員對(duì)系統(tǒng)用戶(hù)的管理,通過(guò)此子模塊的功能實(shí)現(xiàn)可以對(duì)用戶(hù)進(jìn)行添加、修改、刪除、權(quán)限設(shè)置等操作,該子模塊能將圖書(shū)館的不同工作細(xì)化到不同的相關(guān)人員,極大地提高了圖書(shū)館的工作效率。該操作是對(duì)tb_users表進(jìn)行操作,在對(duì)用戶(hù)進(jìn)行了相關(guān)的操作后把操作后的最新信息存放在該表中。&l
62、t;/p><p><b> 3.圖書(shū)館參數(shù)設(shè)置</b></p><p> 通過(guò)該子模塊設(shè)置在圖書(shū)館辦理臨時(shí)讀者證的費(fèi)用及證件有效期限。該操作是對(duì)于tb_parameter表進(jìn)行,并把操作后的最新數(shù)據(jù)存放在該表中。</p><p> 3.2.3 讀者管理模塊功能</p><p> 該模塊主要包含讀者類(lèi)型管理和讀者信息管
63、理兩個(gè)子模塊:</p><p><b> 讀者類(lèi)型管理</b></p><p> 該子模塊是對(duì)圖書(shū)館系統(tǒng)用戶(hù)讀者的類(lèi)型進(jìn)行維護(hù),修改等操作,在此模塊中主要設(shè)置不同類(lèi)型讀者一次性可借閱的圖書(shū)的數(shù)量,該操作是對(duì)于tb_resderType表進(jìn)行,并將操作結(jié)果保存在該表中。</p><p><b> 讀者信息管理</b>&
64、lt;/p><p> 該子模塊是對(duì)讀者的基本信息進(jìn)行管理,可以對(duì)讀者的基本信息進(jìn)行添加,修改,刪除操作,這下操作均是對(duì)tb_resder表進(jìn)行的,并將操作后的結(jié)果保存在該表中。</p><p> 3.2.4 圖書(shū)管理模塊功能 </p><p> 圖書(shū)管理功能模塊可分為圖書(shū)類(lèi)型管理和圖書(shū)信息管理兩個(gè)子模塊,其各自的實(shí)現(xiàn)分別如下面表中所示:</
65、p><p> 表3.11 圖書(shū)類(lèi)型管理描述</p><p> 表3.12 圖書(shū)信息管理描述</p><p> 3.2.5 圖書(shū)借還模塊功能</p><p> 該功能模塊主要實(shí)現(xiàn)對(duì)讀者借閱、續(xù)接、歸還圖書(shū)的操作,其中子模塊各自的描述如下各表所列:</p><p> 表3.13 圖書(shū)借閱描述</p>
66、<p> 表3.14 圖書(shū)續(xù)借描述</p><p> 表3.15圖書(shū)歸還描述</p><p> 3.2.6 系統(tǒng)查詢(xún)模塊功能</p><p> 該模塊包括對(duì)圖書(shū)館藏書(shū)進(jìn)行查詢(xún),對(duì)讀者借閱情況進(jìn)行查詢(xún),以及對(duì)借閱到期和超期的讀者進(jìn)行提醒的信息,其中三個(gè)子模塊的各自實(shí)習(xí)如下所示:</p><p> 表3.16 圖書(shū)查詢(xún)描述&
67、lt;/p><p> 表3.17 圖書(shū)借閱查詢(xún)描述</p><p> 表3.18 圖書(shū)借閱到期提醒描述</p><p><b> 4.程序設(shè)計(jì)與編碼</b></p><p> 4.1開(kāi)發(fā)平臺(tái)與工具</p><p> 4.1.1 J2EE平臺(tái)</p><p> J2E
68、E ,即是Java2平臺(tái)企業(yè)版(Java 2 Platform Enterprise Edition),是原Sun公司(現(xiàn)已被甲骨文公司收購(gòu))為企業(yè)級(jí)應(yīng)用推出的標(biāo)準(zhǔn)平臺(tái)。它簡(jiǎn)化了企業(yè)解決方案的開(kāi)發(fā)、部署和管理相關(guān)復(fù)雜問(wèn)題的體系結(jié)構(gòu),J2EE技術(shù)的基礎(chǔ)就是核心Java平臺(tái)或Java 2平臺(tái)的標(biāo)準(zhǔn)版,J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),例如"編寫(xiě)一次、隨處運(yùn)行"的特性、方便存取數(shù)據(jù)庫(kù)的JDBC API、CORBA技術(shù)以
69、及能夠在Internet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等,同時(shí)還提供了對(duì) EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技術(shù)的全面支持。其最終目的就是成為一個(gè)能夠使企業(yè)開(kāi)發(fā)者大幅縮短投放市場(chǎng)時(shí)間的體系結(jié)構(gòu)。J2EE體系結(jié)構(gòu)提供中間層集成框架用來(lái)滿足無(wú)需太多費(fèi)用而又需要高可用性、高可靠性以及可擴(kuò)展性的應(yīng)用的需求。通過(guò)提供統(tǒng)一的開(kāi)發(fā)平臺(tái),J2EE降低
70、了開(kāi)發(fā)多層應(yīng)用的費(fèi)用和復(fù)雜性,同時(shí)提供對(duì)現(xiàn)有應(yīng)用程序集成強(qiáng)有力支持,完全支持Enterprise JavaBeans,有良好的向?qū)еС?lt;/p><p> 在開(kāi)發(fā)圖書(shū)館借閱管理系統(tǒng)的過(guò)程中,應(yīng)用Myeclipse6.0.1,它可以在數(shù)據(jù)庫(kù)和J2EE的開(kāi)發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。Myeclipse是功能豐富的J2EE集成開(kāi)發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTM
71、L, Struts, JSF, CSS, Javascript, SQL[10]。</p><p> 4.1.2 WEB服務(wù)器和數(shù)據(jù)庫(kù)</p><p> 在系統(tǒng)的開(kāi)發(fā)過(guò)程中使用的Web應(yīng)用服務(wù)器是Tomcat,是Apache 軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、SUN和其他一些公司及個(gè)人共同開(kāi)發(fā)而成。
72、由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn)。Tomcat是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,它運(yùn)行時(shí)占用的系統(tǒng)資源小、擴(kuò)展性好、支持負(fù)載平衡和郵件服務(wù)等開(kāi)發(fā)應(yīng)用系統(tǒng)常用的功能,因此在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶(hù)不是很多的時(shí)候,經(jīng)常被使用[11]。</p><p> 使用MySQL作為數(shù)據(jù)庫(kù)開(kāi)發(fā)工具。MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQL A
73、B公司。在2008年1月16號(hào)被Sun公司收購(gòu)。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)[11]。</p><p> 為了開(kāi)發(fā)的便捷快速,使用struts第三方插件。Struts是一個(gè)全新的MVC框架,實(shí)在WebWork基礎(chǔ)上發(fā)展起來(lái)的[12]。</p&
74、gt;<p> 開(kāi)發(fā)系統(tǒng)用的系統(tǒng)工具如表4.1所示:</p><p> 表4.1 系統(tǒng)開(kāi)發(fā)平臺(tái)和工具</p><p><b> 4.2程序設(shè)計(jì)</b></p><p> 4.2.1程序設(shè)計(jì)概述</p><p> 在設(shè)計(jì)的Web層應(yīng)用了著名的MVC模式,V有JSP來(lái)實(shí)現(xiàn),為了業(yè)務(wù)邏輯和表示的分離.它
75、是基于Web應(yīng)用系統(tǒng),它的客戶(hù)端使用Broswer,然后是Web層的應(yīng)用,業(yè)務(wù)邏輯層(有EJB實(shí)現(xiàn)),資源管理層??蛻?hù)請(qǐng)求瀏覽頁(yè)面,一般Web層的View有JSP組成,并且使用了大量Taglib。把每個(gè)請(qǐng)求映射到某個(gè)HTMLAction類(lèi)來(lái)響應(yīng)它。HTML Action類(lèi)是一個(gè)標(biāo)準(zhǔn)的類(lèi),執(zhí)行選擇的HTML Action。使用MVC模式減少了代碼的復(fù)制,即減少了代碼的維護(hù),由于模型返回的格式不帶任何顯示格式,因而模型可以直接應(yīng)用于接口的使
76、用,還因?yàn)镸VC模型把不同的模型和不同的視圖組合在一起完成不同的請(qǐng)求,因此,控制層可以說(shuō)包含了用戶(hù)請(qǐng)求權(quán)限的概念[13]。</p><p> 在設(shè)計(jì)中還因應(yīng)用了Struts框架,Struts跟Tomcat、Turbine等諸多Apache項(xiàng)目一樣,是開(kāi)源軟件,這是它的一大優(yōu)點(diǎn)。使開(kāi)發(fā)者能更深入的了解其內(nèi)部實(shí)現(xiàn)機(jī)制[11]。 </p><p> 除此之外,Struts的優(yōu)點(diǎn)主要集中體現(xiàn)在
77、Taglib和頁(yè)面導(dǎo)航。Taglib是Struts的標(biāo)記庫(kù),靈活動(dòng)用,能大大提高開(kāi)發(fā)效率。頁(yè)面導(dǎo)航使系統(tǒng)的脈絡(luò)更加清晰。通過(guò)一個(gè)配置文件,即可把握整個(gè)系統(tǒng)各部分之間的聯(lián)系,這對(duì)于后期的維護(hù)有著莫大的好處[11]。</p><p> 4.2.2數(shù)據(jù)庫(kù)與Web服務(wù)器的連接</p><p> 數(shù)據(jù)庫(kù)連接時(shí)采用連接池技術(shù)鏈接MySQL,具體代碼實(shí)現(xiàn)如下:</p><p>
78、; public ConnDB(){</p><p><b> try {</b></p><p> InputStream in=getClass().getResourceAsStream(propFileName);</p><p> prop.load(in);//通過(guò)輸入流對(duì)象加載Properties文件&l
79、t;/p><p> dbClassName = prop.getProperty("DB_CLASS_NAME");//獲取數(shù)據(jù)庫(kù)驅(qū)動(dòng)</p><p> dbUrl = prop.getProperty("DB_URL",</p><p> "jdbc:mysql://127.0.0.1:3306/db_libr
80、arySys?user=root&password=123&useUnicode=true");</p><p><b> }</b></p><p> catch (Exception e) {</p><p> e.printStackTrace();//輸出異常信息</p><p&g
81、t;<b> }</b></p><p><b> }</b></p><p> public static Connection getConnection() {</p><p> Connection conn = null;</p><p><b> try {</
82、b></p><p> Class.forName(dbClassName).newInstance();</p><p> conn = DriverManager.getConnection(dbUrl);</p><p><b> }</b></p><p> catch (Exception ee)
83、 {</p><p> ee.printStackTrace();</p><p><b> }</b></p><p> if (conn == null) {</p><p> System.err.println(</p><p> "警告: DbConnectionMa
84、nager.getConnection() 獲得數(shù)據(jù)庫(kù)鏈接失敗.\r\n\r\n鏈接類(lèi)型:" +</p><p> dbClassName + "\r\n鏈接位置:" + dbUrl);</p><p><b> }</b></p><p> return conn;</p><p>
85、<b> }</b></p><p><b> /*</b></p><p> * 功能:執(zhí)行查詢(xún)語(yǔ)句</p><p><b> */</b></p><p> public ResultSet executeQuery(String sql) {</p>
86、<p><b> try {</b></p><p> conn = getConnection();</p><p> stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,</p><p> ResultSet.CONCUR_READ_ONLY);&
87、lt;/p><p> rs = stmt.executeQuery(sql);</p><p> } catch (SQLException ex) {</p><p> System.err.println(ex.getMessage());</p><p><b> }</b></p><p&
88、gt; return rs;</p><p><b> }</b></p><p><b> /*</b></p><p> * 功能:執(zhí)行更新操作</p><p><b> */</b></p><p> public int execut
89、eUpdate(String sql) {</p><p> int result = 0;</p><p><b> try {</b></p><p> conn = getConnection();//調(diào)用getConnection()方法構(gòu)造Connection對(duì)象的一個(gè)實(shí)例conn</p><p&g
90、t; stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,</p><p> ResultSet.CONCUR_READ_ONLY);</p><p> result = stmt.executeUpdate(sql);//執(zhí)行更新操作</p><p> } catch (SQLEx
91、ception ex) {</p><p> result = 0;</p><p><b> }</b></p><p> return result;</p><p><b> }</b></p><p><b> /*</b></p
92、><p> * 功能:關(guān)閉數(shù)據(jù)庫(kù)的連接</p><p><b> */</b></p><p> public void close() {</p><p><b> try {</b></p><p> if (rs != null) {</p><
93、;p> rs.close();</p><p><b> }</b></p><p> if (stmt != null) {</p><p> stmt.close();</p><p><b> }</b></p><p> if (conn != nu
94、ll) {</p><p> conn.close();</p><p><b> }</b></p><p> } catch (Exception e) {</p><p> e.printStackTrace(System.err);</p><p><b> }<
95、/b></p><p><b> }</b></p><p><b> }</b></p><p> 4.2.3登錄模塊程序設(shè)計(jì)</p><p> 本模塊主要是用戶(hù)通過(guò)圖書(shū)管理系統(tǒng)的首頁(yè)登錄進(jìn)入該系統(tǒng)。用戶(hù)輸入正確的用戶(hù)名和密碼,系統(tǒng)會(huì)根據(jù)用戶(hù)的身份進(jìn)行相應(yīng)權(quán)限劃分;如果登錄信息有錯(cuò)誤
96、,則系統(tǒng)提示登入錯(cuò)誤的信息,并且禁止系統(tǒng)用戶(hù)進(jìn)行任何操作。圖書(shū)借閱管理系統(tǒng)的登錄主頁(yè)面如圖4.1所示。</p><p> 圖4.1 圖書(shū)管理系統(tǒng)登錄首頁(yè)</p><p> 用戶(hù)在登錄頁(yè)面寫(xiě)好用戶(hù)名和密碼,選擇登錄,登錄成功則跳轉(zhuǎn)到系統(tǒng)的首頁(yè),否則提示錯(cuò)誤信息[14]。在服務(wù)器端進(jìn)行用戶(hù)身份驗(yàn)證的程序流程圖如圖4.2程序流程圖所示</p><p> 圖4.2用戶(hù)
97、登錄流程圖</p><p> 4.2.4系統(tǒng)管理員功能模塊的實(shí)現(xiàn)</p><p> 本模塊中最主要的是管理系統(tǒng)用戶(hù),設(shè)置圖書(shū)館信息等操作,其中管理系統(tǒng)用戶(hù)包括對(duì)他們進(jìn)行添加,修改,刪除及權(quán)限劃分操作。</p><p> 其中系統(tǒng)管理員讀系統(tǒng)用戶(hù)進(jìn)行管理的操作頁(yè)面如下圖所示:</p><p> 圖4.3 系統(tǒng)管理員管理用戶(hù)操作界面<
98、;/p><p> 其中對(duì)系統(tǒng)用戶(hù)權(quán)限的設(shè)置是該操作的重要部分也是系統(tǒng)提高效率的關(guān)鍵所在,起具體實(shí)現(xiàn)代碼為:</p><p> private ActionForward managerModify(ActionMapping mapping, ActionForm form,</p><p> HttpServletRequest request, HttpSer
99、vletResponse response) {</p><p> ManagerForm managerForm = (ManagerForm) form;</p><p> managerForm.setId(managerForm.getId()); //獲取并設(shè)置管理員ID號(hào)</p><p> managerForm.setName(manage
100、rForm.getName()); //獲取并設(shè)置管理員名稱(chēng)</p><p> managerForm.setPwd(managerForm.getPwd()); //獲取并設(shè)置管理員密碼</p><p> managerForm.setSysset(managerForm.getSysset());//獲取并設(shè)置系統(tǒng)設(shè)置權(quán)限</p><p> ma
101、nagerForm.setReaderset(managerForm.getReaderset()); //獲取并設(shè)置讀者管理權(quán)限</p><p> managerForm.setBookset(managerForm.getBookset()); //獲取并設(shè)置圖書(shū)管理權(quán)限</p><p> managerForm.setBorrowback(managerForm.getBorr
102、owback());//獲取并設(shè)置圖書(shū)借還權(quán)限</p><p> managerForm.setSysquery(managerForm.getSysquery()); //獲取并設(shè)置系統(tǒng)查詢(xún)權(quán)限</p><p> int ret = managerDAO.update(managerForm); //調(diào)用設(shè)置管理員權(quán)限的方法</p><p>
103、 if (ret == 0) {</p><p> request.setAttribute("error", "設(shè)置管理員權(quán)限失敗!");//保存錯(cuò)誤提示信息到error參數(shù)中</p><p> return mapping.findForward("error"); //轉(zhuǎn)到錯(cuò)誤提示頁(yè)面</p>&
104、lt;p><b> } else {</b></p><p> return mapping.findForward("managerModify");//轉(zhuǎn)到權(quán)限設(shè)置成功頁(yè)面</p><p><b> }</b></p><p><b> }</b></p&
105、gt;<p> 4.2.5讀者管理功能模塊的實(shí)現(xiàn)</p><p> 讀者管理主要實(shí)現(xiàn)對(duì)讀者的類(lèi)型管理和信息管理兩個(gè)功能子模塊,其中讀者類(lèi)型管理中需要設(shè)置不同類(lèi)型讀者一次性可借閱的圖書(shū)數(shù)量,讀者信息管理則主要管理維護(hù)讀者的基本信息,其各自操作界面如下所示:</p><p> 1) 讀者類(lèi)型管理功能界面:</p><p> 圖4.4 讀者類(lèi)型管理操
106、作界面</p><p> 2)讀者信息管理功能界面:</p><p> 圖4.5 讀者信息管理界面</p><p> 該管理功能在設(shè)置讀者信息時(shí)需要輸入讀者姓名,性別,條形碼,選擇讀者類(lèi)別,有效證件,證件號(hào)碼,電話,e-mail等信息。其中的姓名,性別,條形碼,證件號(hào)碼是必填選項(xiàng)。</p><p> 4.2.6查詢(xún)功能模塊的實(shí)現(xiàn)<
107、;/p><p> 查詢(xún)功能模塊包括圖書(shū)查詢(xún),讀者借閱查詢(xún)和借閱到期提醒三個(gè)子功能模塊。</p><p> 1) 圖書(shū)查詢(xún)可根據(jù)圖書(shū)的條形碼,書(shū)名,作者,出版社等不同信息進(jìn)行查詢(xún),其操作界面圖下圖所示:</p><p> 圖4.6 圖書(shū)查詢(xún)操作界面</p><p> 實(shí)現(xiàn)該功能中根據(jù)讀者不同需求的按條件查詢(xún)實(shí)現(xiàn)語(yǔ)句如下:</p>
108、<p> public Collection query(String strif){</p><p> BookForm bookForm=null;</p><p> Collection bookColl=new ArrayList();</p><p> String sql="";</p><p
109、> if(strif!="all" && strif!=null && strif!=""){</p><p> sql="select * from (select b.*,c.name as bookcaseName,p.pubname as publishing,t.typename from tb_bookinfo
110、 b left join tb_bookcase c on b.bookcase=c.id join tb_publishing p on b.ISBN=p.ISBN join tb_booktype t on b.typeid=t.id where b.del=0) as book where book."+strif+"'";</p><p><b> }e
111、lse{</b></p><p> sql="select b.*,c.name as bookcaseName,p.pubname as publishing,t.typename from tb_bookinfo b left join tb_bookcase c on b.bookcase=c.id join tb_publishing p on b.ISBN=p.ISBN join
112、 tb_booktype t on b.typeid=t.id where b.del=0";</p><p><b> }</b></p><p> System.out.println("圖書(shū)查詢(xún)時(shí)的SQL:"+sql);</p><p> ResultSet rs=conn.executeQuery(s
113、ql);</p><p><b> try {</b></p><p> while (rs.next()) {</p><p> bookForm=new BookForm();</p><p> bookForm.setBarcode(rs.getString(1)); </p>&
114、lt;p> bookForm.setBookName(rs.getString(2));</p><p> bookForm.setTypeId(rs.getInt(3));</p><p> bookForm.setAuthor(rs.getString(4));</p><p> bookForm.setTranslator(rs.getStrin
115、g(5));</p><p> bookForm.setIsbn(rs.getString(6));</p><p> bookForm.setPrice(Float.valueOf(rs.getString(7))); //此處必須進(jìn)行類(lèi)型轉(zhuǎn)換</p><p> bookForm.setPage(rs.getInt(8));</p><
116、p> bookForm.setBookcaseid(rs.getInt(9));</p><p> bookForm.setInTime(rs.getString(10));</p><p> bookForm.setOperator(rs.getString(11)); </p><p> bookForm.setDel(rs.getI
117、nt(12)); </p><p> bookForm.setId(Integer.valueOf(rs.getString(13)));</p><p> bookForm.setBookcaseName(rs.getString(14));</p><p> bookForm.setPublishing(rs.getString(15));<
118、/p><p> bookForm.setTypeName(rs.getString(16));</p><p> bookColl.add(bookForm);</p><p><b> }</b></p><p> } catch (SQLException ex) {</p><p>
119、ex.printStackTrace();</p><p><b> }</b></p><p> conn.close();</p><p> return bookColl;</p><p><b> }</b></p><p> 2)借閱查詢(xún)子模塊是對(duì)圖書(shū)當(dāng)前
120、狀態(tài)和讀者當(dāng)前的借閱情況進(jìn)行查詢(xún),具有此權(quán)限的用戶(hù)登錄并進(jìn)入該操作界面后選中相應(yīng)的查詢(xún)條件,并輸入相應(yīng)的查詢(xún)信息,系統(tǒng)即可在頁(yè)面顯示被查詢(xún)的圖書(shū)的狀態(tài),或相應(yīng)讀者的當(dāng)起借閱情況,此外,還可以輸入相應(yīng)時(shí)間段內(nèi)的所有借閱清單,或選擇某個(gè)讀者查詢(xún)他在某個(gè)時(shí)間段內(nèi)的借閱情況,查詢(xún)某個(gè)時(shí)間段內(nèi)的此子功能操作界面為:</p><p> 圖4.7借閱查詢(xún)操作界面</p><p> 系統(tǒng)中同時(shí)選中日期
121、和限制條件進(jìn)行查詢(xún)時(shí),程序是在條件查詢(xún)的基礎(chǔ)上選中符合時(shí)間條件限制的內(nèi)容,其實(shí)現(xiàn)代碼為:</p><p> if (flag.length == 2) {</p><p> if (request.getParameter("f") != null) {</p><p> str = request.getParameter("f
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖書(shū)館借閱管理系統(tǒng)---畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)--圖書(shū)館借閱管理系統(tǒng)
- 畢業(yè)設(shè)計(jì)---圖書(shū)館借閱管理系統(tǒng)
- 畢業(yè)論文--圖書(shū)館借閱管理系統(tǒng)
- 畢業(yè)論文--圖書(shū)館借閱管理系統(tǒng)
- 圖書(shū)館圖書(shū)借閱管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 圖書(shū)館管理系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)(論文)---圖書(shū)館管理系統(tǒng)
- 圖書(shū)館管理系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)設(shè)計(jì)(論文)圖書(shū)館全開(kāi)架借閱管理系統(tǒng)
- 畢業(yè)設(shè)計(jì)論文 圖書(shū)館管理系統(tǒng)設(shè)計(jì)
- 圖書(shū)館管理系統(tǒng)——后臺(tái)管理(畢業(yè)設(shè)計(jì)論文)
- 圖書(shū)館管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 圖書(shū)館管理系統(tǒng)--畢業(yè)設(shè)計(jì)
- 圖書(shū)館管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于jsp圖書(shū)館管理系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)(論文)+vb圖書(shū)館管理系統(tǒng)論文
- 基于jsp圖書(shū)館管理系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)---圖書(shū)館集成管理系統(tǒng)
- 圖書(shū)館管理系統(tǒng)(完整畢業(yè)設(shè)計(jì))
評(píng)論
0/150
提交評(píng)論