畢業(yè)設(shè)計(jì)(論文)基于JSP的圖書(shū)管理系統(tǒng)設(shè)計(jì)_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于JSP的圖書(shū)管理系統(tǒng)設(shè)計(jì)_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于JSP的圖書(shū)管理系統(tǒng)設(shè)計(jì)_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于JSP的圖書(shū)管理系統(tǒng)設(shè)計(jì)_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于JSP的圖書(shū)管理系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第1章 緒論1.1 選題意義在現(xiàn)代社會(huì),信息化技術(shù)不斷提高,各行各業(yè)都向信息化發(fā)展。圖書(shū)館也隨之進(jìn)入信息化階段,利用信息科學(xué)技術(shù)進(jìn)行科學(xué)管理,改變運(yùn)行模式,而且使之各高校的圖書(shū)館也向數(shù)字化發(fā)展。圖書(shū)館管理系統(tǒng)開(kāi)發(fā)主要包括了管理員對(duì)服務(wù)器端強(qiáng)大的數(shù)據(jù)管理的服務(wù)平臺(tái)以及服務(wù)器端強(qiáng)大的數(shù)據(jù)庫(kù)??蛻舳艘蠊δ荦R全,滿足客戶的需要,能體現(xiàn)出圖書(shū)館風(fēng)格;對(duì)于管理員的數(shù)據(jù)管理平臺(tái),要求數(shù)據(jù)管理功能齊全,界面友好并易于使用的平臺(tái);對(duì)于服務(wù)器端的數(shù)據(jù)庫(kù),要求建立起一個(gè)數(shù)據(jù)一致性和完整性強(qiáng),數(shù)據(jù)安全性好,保密功能強(qiáng)大,并適用于圖書(shū)館的管理系統(tǒng)。1.2 系統(tǒng)概況1.2.1 系統(tǒng)的開(kāi)發(fā)背景在現(xiàn)代社會(huì),信息化技術(shù)不斷提

2、高,各行各業(yè)都向信息化發(fā)展。圖書(shū)館行業(yè)也隨之進(jìn)入信息化階段,利用信息科學(xué)技術(shù)進(jìn)行科學(xué)管理,改變運(yùn)行模式,而且使之各高校的圖書(shū)館也向數(shù)字化發(fā)展。圖書(shū)館管理系統(tǒng)的開(kāi)發(fā)主要包括了管理員對(duì)服務(wù)器端強(qiáng)大的數(shù)據(jù)管理的服務(wù)平臺(tái)以及服務(wù)器端強(qiáng)大的數(shù)據(jù)庫(kù)。服務(wù)端要求功能齊全,滿足需要,系統(tǒng)的風(fēng)格能體驗(yàn)出圖書(shū)館風(fēng)格,讓瀏覽者瀏覽舒適;對(duì)于管理員的數(shù)據(jù)管理平臺(tái),要求數(shù)據(jù)管理功能齊全,界面友好并易于使用的平臺(tái);對(duì)于服務(wù)器端的數(shù)據(jù)庫(kù),要求建立起一個(gè)數(shù)據(jù)一致性和完整性強(qiáng),數(shù)據(jù)安全性好,保密功能強(qiáng)大,并適用于圖書(shū)館管理系統(tǒng)的數(shù)據(jù)庫(kù)。通過(guò)上述的分析,構(gòu)建好網(wǎng)站的客戶端平臺(tái)、數(shù)據(jù)管理平臺(tái)以及數(shù)據(jù)庫(kù)將會(huì)是本次畢業(yè)設(shè)計(jì)的主要工作。

3、我們使用jsp對(duì)網(wǎng)站進(jìn)行頁(yè)面外觀設(shè)計(jì),使用jsp對(duì)網(wǎng)站進(jìn)行設(shè)計(jì),用mysqlserver5.0網(wǎng)絡(luò)型數(shù)據(jù)庫(kù)作為后臺(tái)服務(wù)器并在其中架設(shè)本系統(tǒng)的數(shù)據(jù)庫(kù)。首先對(duì)圖書(shū)館進(jìn)行需求分析,確立了系統(tǒng)的功能,建立起原型,然后對(duì)初建立的原型進(jìn)行系統(tǒng)分析,再建立數(shù)據(jù)庫(kù)原型,然后不斷設(shè)計(jì)、修正和改進(jìn),完善數(shù)據(jù)庫(kù)結(jié)構(gòu),直到成形,瀏覽舒適、方便,能滿足需求,形成友好界面,操作直觀、方便的數(shù)據(jù)庫(kù)管理平臺(tái)。根據(jù)圖書(shū)館的特點(diǎn)而設(shè)計(jì)的,能讓圖書(shū)館管理員方便管理圖書(shū)館資源,提高管理人員的工作量,以達(dá)到科學(xué)化、標(biāo)準(zhǔn)化的管理。1.2.2 應(yīng)用技術(shù)1.java web技術(shù)java web應(yīng)用的核心技術(shù)是jsp和servlet。此外,開(kāi)

4、發(fā)一個(gè)完整的java web應(yīng)用還涉及以下的概念:javabean組件,ejb組件,自定義jsp標(biāo)簽,xml,web服務(wù)器和應(yīng)用服務(wù)器。(1) jsp在傳統(tǒng)的html文件中加入java程序片段和jsp標(biāo)簽,就構(gòu)成了jsp網(wǎng)頁(yè)。java程序片段可以操縱數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)以及發(fā)送e-mail等,實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給用戶端的僅為輸出結(jié)果。jsp技術(shù)大大降低了對(duì)用戶瀏覽器的要求,即使用戶瀏覽器端不支持java,也可以訪問(wèn)jsp網(wǎng)頁(yè)。當(dāng)jsp容器接收到web用戶的一個(gè)jsp文件請(qǐng)求時(shí),它對(duì)jsp文件進(jìn)行語(yǔ)法分析產(chǎn)生并生成javaservlet源文件,

5、然后對(duì)其編譯。一般情況下,servlet源文件的生成和編譯僅在初次調(diào)用jsp時(shí)發(fā)生。如果原始的jsp文件被更新,jsp容器將檢測(cè)所做的更新,在執(zhí)行之前重新生成servlet并進(jìn)行編譯。圖1-1顯示了jsp容器初次執(zhí)行jsp的過(guò)程:圖1-1 jsp容器初次執(zhí)行jsp的過(guò)程(2) servletservlet在web應(yīng)用中擔(dān)任重要角色。servlet運(yùn)行與servlet運(yùn)行于servlet容器中,可以被servelt容器動(dòng)態(tài)加載,來(lái)擴(kuò)展服務(wù)器的功能,并提供特定的服務(wù)。servlet按照請(qǐng)求/響應(yīng)的方式工作。在struts框架中,控制器組件就是由servlet來(lái)構(gòu)成的。當(dāng)用戶請(qǐng)求訪問(wèn)某個(gè)servle

6、t時(shí),servlet容器將創(chuàng)建一個(gè)servletrequest對(duì)象和servletresponse對(duì)象。在servletresponse對(duì)象中封裝了用戶請(qǐng)求信息,然后servlet容器把servletrequest對(duì)象和servletresponse對(duì)象傳給用戶所請(qǐng)求的servlet。servlet把響應(yīng)結(jié)果寫(xiě)到servletresponse中,然后由servlet容器把相應(yīng)結(jié)果傳給用戶。圖1-2顯示了servlet容器響應(yīng)用戶請(qǐng)求的過(guò)程。圖1-2 servlet容器響應(yīng)用戶請(qǐng)求的過(guò)程在javaservlet api中有以下幾個(gè)比較重要的類,它們決定了web應(yīng)用的請(qǐng)求/響應(yīng)方式及各種共享數(shù)據(jù)的

7、存放地點(diǎn):httpservletrequest、httpservletresponse、httpsession、servletcontext。2.java語(yǔ)言java是一個(gè)更簡(jiǎn)單的面向?qū)ο?object-oriented)程序語(yǔ)言,具有更高的跨平臺(tái)可能性。java是一個(gè)支持面向?qū)ο笥^點(diǎn)的程序語(yǔ)言,在使用上比c+更為簡(jiǎn)單。它限制或簡(jiǎn)化了c+語(yǔ)言在開(kāi)發(fā)程序時(shí)的一些功能,最然犧牲了某系存取或彈性,但讓開(kāi)發(fā)人員避免開(kāi)發(fā)軟件時(shí)可能發(fā)生的錯(cuò)誤,并讓程序語(yǔ)言本身的使用上更為方便,而用java所編寫(xiě)出來(lái)的程序在不同的平臺(tái)間具有更高的可移植性。對(duì)于“一次編寫(xiě),處處運(yùn)行”這樣的夢(mèng)想java提供了更高的可能性。3.

8、my sql 數(shù)據(jù)庫(kù)1.3 系統(tǒng)特征1.3.1 采用web技術(shù)的操作界面本平臺(tái)利用現(xiàn)在比較廣泛的jsp+mysql數(shù)據(jù)庫(kù)的架構(gòu)實(shí)現(xiàn)的,此系統(tǒng)采用了友好的操作界面,供管理員使用。包括:系統(tǒng)設(shè)置、讀者管理、圖書(shū)管理、圖書(shū)借還、系統(tǒng)查詢等功能。使管理員從繁瑣的手工操作中解脫出來(lái),并提高了辦公效率。1.3.2基于b/s的體系結(jié)構(gòu)在b/s體系結(jié)構(gòu)系統(tǒng)中,用戶通過(guò)瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請(qǐng)求,服務(wù)器對(duì)瀏覽器的請(qǐng)求進(jìn)行處理,將用戶所需信息返回到瀏覽器。b/s結(jié)構(gòu)簡(jiǎn)化了客戶機(jī)的工作,客戶機(jī)上只需配置少量的客戶端軟件。服務(wù)器將擔(dān)負(fù)更多的工作,對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)和應(yīng)用程序的執(zhí)行將在服務(wù)器上完成。瀏覽器發(fā)出

9、請(qǐng)求,而其余如數(shù)據(jù)請(qǐng)求、加工、結(jié)果返回以及動(dòng)態(tài)網(wǎng)頁(yè)生成等工作全部由web server完成。實(shí)際上b/s體系結(jié)構(gòu)是把二層c/s結(jié)構(gòu)的事務(wù)處理邏輯模塊從客戶機(jī)的任務(wù)中分離出來(lái),由web服務(wù)器單獨(dú)組成一層來(lái)負(fù)擔(dān)其任務(wù),這樣客戶機(jī)的壓力減輕了,把負(fù)荷分配給了web服務(wù)器。這種三層體系結(jié)構(gòu)如圖2-2所示。圖1-3 b/s三層架構(gòu)1.3.3 基于mvc的應(yīng)用開(kāi)發(fā)模式在傳統(tǒng)的基于web的應(yīng)用系統(tǒng)中,例如asp,cgi等,通常開(kāi)發(fā)者將業(yè)務(wù)邏輯,數(shù)據(jù)邏輯、展示邏輯等混雜在一起,在同一個(gè)界面面里既進(jìn)行后臺(tái)數(shù)據(jù)庫(kù)的訪問(wèn)和操作,同時(shí)還包含業(yè)務(wù)流程和頁(yè)面表示。這樣編寫(xiě)出來(lái)的程序,既不利于程序員對(duì)業(yè)務(wù)代碼的調(diào)試,同時(shí)也

10、不利于編輯人員進(jìn)行交互頁(yè)面的設(shè)計(jì)。同時(shí)系統(tǒng)也不具備可擴(kuò)展性,當(dāng)我們要在現(xiàn)有業(yè)務(wù)上進(jìn)行擴(kuò)展的時(shí)候,通常無(wú)法借助于現(xiàn)有的資源和應(yīng)用,而只能夠重新編寫(xiě),大大增加了投資,延長(zhǎng)了系統(tǒng)上線的時(shí)間,失去了競(jìng)爭(zhēng)市場(chǎng)的優(yōu)勢(shì)。在本網(wǎng)上購(gòu)物系統(tǒng)中,將采用通行的mvc模式來(lái)構(gòu)建應(yīng)用。這種結(jié)構(gòu)解決了前面所述的所有問(wèn)題,在我們的應(yīng)用集成網(wǎng)絡(luò)中,通過(guò)企業(yè)級(jí)高端j2ee應(yīng)用服務(wù)器實(shí)現(xiàn)mvc開(kāi)發(fā)模型。mvc的邏輯圖如下:圖1-4應(yīng)用服務(wù)器之上采用mvc開(kāi)發(fā)的邏輯示意圖control服務(wù)控制view顯示方式model業(yè)務(wù)邏輯模型輸入請(qǐng)求輸出html其他圖1-5 mvc流程示意圖通過(guò)這種方案,我們可以迅速地實(shí)現(xiàn)整個(gè)業(yè)務(wù),其優(yōu)勢(shì)和特

11、點(diǎn)如下:model(模型)層:代表應(yīng)用程序的數(shù)據(jù)以及用于訪問(wèn)控制和修改這些數(shù)據(jù)的業(yè)務(wù)規(guī)則。當(dāng)模型發(fā)生改變時(shí),它回同時(shí)視圖,并為視圖提供查詢模型相關(guān)狀態(tài)的能力。同時(shí),它也為控制器提供訪問(wèn)封裝在模型內(nèi)部的應(yīng)用程序功能的能力。view(視圖)層:由jsp、html組成。這一層次的特點(diǎn)是能夠真實(shí)地展示和客戶交互的界面,具備可描繪的功能。同時(shí)能夠嵌套動(dòng)態(tài)數(shù)據(jù),可以進(jìn)行動(dòng)態(tài)頁(yè)面的展示。同時(shí)可以方便地進(jìn)行客戶端的個(gè)性化定制。根據(jù)每個(gè)客戶的需求來(lái)展示不同風(fēng)格的界面。controller(控制器)層:是非常重要的一層,這一層是連接view和model的紐帶,同時(shí)也是將這兩層進(jìn)行最大限度分離的工具。通常由serv

12、let來(lái)實(shí)現(xiàn),servlet和jsp雖然同樣都屬于頁(yè)面展示工具,但分屬兩層。主要在于jsp以腳本語(yǔ)言的形式存在, 它的主要優(yōu)勢(shì)是進(jìn)行動(dòng)態(tài)數(shù)據(jù)的web展示,而servlet是一個(gè)完整的java程序,進(jìn)行業(yè)務(wù)的調(diào)用和流程的處理是它的長(zhǎng)處。通過(guò)這種模型的建立,我們的應(yīng)用系統(tǒng)具備了非常好的性能和可擴(kuò)展性。將業(yè)務(wù)組件和展示頁(yè)面進(jìn)行分離,并通過(guò)controller來(lái)描述調(diào)用關(guān)系,一方面可以提高效率,另一方面也可以增加系統(tǒng)擴(kuò)充的能力,使我們的系統(tǒng)可以進(jìn)行最快速度的業(yè)務(wù)擴(kuò)展,以滿足不同用戶、不同階段、各種各樣的業(yè)務(wù)需求。1.4本文所做的主要工作緒論部分對(duì)系統(tǒng)的結(jié)構(gòu)、開(kāi)發(fā)以及所用到的相關(guān)技術(shù)進(jìn)行了簡(jiǎn)要介紹,分析

13、了圖書(shū)館管理系統(tǒng)設(shè)計(jì)的特點(diǎn)和任務(wù)。第二章介紹了為了開(kāi)發(fā)本系統(tǒng)所用到的開(kāi)發(fā)工具,包括了myeclipse 7.0 mysql 5.0 和tomcat 6.0。詳細(xì)介紹了這幾種工具的背景以及功能。第三章分析了圖書(shū)館管理系統(tǒng)的應(yīng)用需求,設(shè)計(jì)了系統(tǒng)的數(shù)據(jù)庫(kù)結(jié)構(gòu),并根據(jù)需求對(duì)系統(tǒng)功能進(jìn)行了劃分和細(xì)化。第四章設(shè)計(jì)了本系統(tǒng)的數(shù)據(jù)庫(kù)。第五章利用myeclipse 7.0進(jìn)行了具體的應(yīng)用程序設(shè)計(jì)??偨Y(jié)部分介紹了設(shè)計(jì)體會(huì)和編程體會(huì),并指出了系統(tǒng)設(shè)計(jì)中的不足和改進(jìn)的方向。第2章 應(yīng)用系統(tǒng)開(kāi)發(fā)工具2.1 myeclipse 7.02.1.1 eclipse的簡(jiǎn)介eclipse是一個(gè)非常優(yōu)秀的集成開(kāi)發(fā)環(huán)境,ibm已經(jīng)花

14、了多年的時(shí)間開(kāi)發(fā)基于java的公開(kāi)源代碼軟件eclipse,并在其中投資了4000萬(wàn)美元。這個(gè)在ibm支持下的開(kāi)放源代碼項(xiàng)目已經(jīng)為廣大java開(kāi)發(fā)者所熟悉。eclipse的出現(xiàn),為java開(kāi)發(fā)者提供了免費(fèi)使用強(qiáng)大的javaide的機(jī)會(huì),通過(guò)集成大量的插件,eclipse的功能可以不斷擴(kuò)展,以支持各種不同的應(yīng)用。eclipse軟件可以用于管理多種開(kāi)發(fā)任務(wù),包括測(cè)試、性能調(diào)整及程序調(diào)試等,而且還可以集成來(lái)自多個(gè)供貨商的第三方應(yīng)用程序開(kāi)發(fā)工具。此外,eclipse軟件非常適合開(kāi)發(fā)電子商務(wù)應(yīng)用程序,例如ibm公司自己的面向web服務(wù)的websphse應(yīng)用程序開(kāi)發(fā)工具就是建立在eclipse基礎(chǔ)之上。除

15、此之外,eclipse平臺(tái)時(shí)一個(gè)成熟的、精心設(shè)計(jì)的及可擴(kuò)展的體系結(jié)構(gòu)。eclipse的價(jià)值還在與它為創(chuàng)建可擴(kuò)展的集成開(kāi)發(fā)環(huán)境提供了一個(gè)開(kāi)放源代碼平臺(tái)。這個(gè)平臺(tái)允許任何人構(gòu)建與環(huán)境和其他工具無(wú)縫集成的工具,而工具與eclipse無(wú)縫集成的關(guān)鍵便是插件。2.1.2 eclipse的下載及安裝使用eclipse,必須先安裝jdk。如果已經(jīng)安裝了jdk,那就可以直接安裝eclipse。安裝jdk可選擇的sun的或ibm的都可以,應(yīng)該安裝1.3以上版本,推薦使用1.4以上版本,應(yīng)為只有使用1.4以上版本的jdk才可以享受到新增的功能給測(cè)試帶來(lái)的方便。eclipse是個(gè)免費(fèi)的軟件,到eclipse的官方網(wǎng)

16、站可以得到它。其中包括了開(kāi)發(fā)java應(yīng)用的所有內(nèi)容和eclipse項(xiàng)目的所有成果。2.2 mysql 5.02.2.1 mysql的概念及體系結(jié)構(gòu)mysql是最流行的開(kāi)放源碼sql數(shù)據(jù)庫(kù)管理系統(tǒng),mysql軟件是一種開(kāi)放源碼軟件,具有快速及可靠和易于使用的特點(diǎn)。mysql數(shù)據(jù)庫(kù)軟件還是一種客戶端/服務(wù)器系統(tǒng),由支持不同后端的1個(gè)多線程sql服務(wù)器,數(shù)種不同的客戶端程序和庫(kù),眾多管理工具和廣泛的應(yīng)用編程接口api組成。有大量的共享mysql軟件。圖2-1 mysql的體系結(jié)構(gòu)2.2.2 mysql的發(fā)展mysql最早起始于1979年,開(kāi)始是micheal “monty” widenius為瑞典的

17、tcx公司創(chuàng)建的unireg數(shù)據(jù)庫(kù)工具。1996年5月mysql 1.0出品。到2008年1月16日sun公司出價(jià)10億美元收購(gòu)了mysql。mysql的當(dāng)前版本是mysql 5.0.67 。mysql在全球范圍內(nèi)有很多著名的用戶,其中包括google,雅虎財(cái)經(jīng)網(wǎng)站的數(shù)據(jù)庫(kù)以及在國(guó)內(nèi)非常出名的騰訊qq。2.2.3 mysql的下載、安裝及配置首先,要到mysql的官方網(wǎng)站去下載安裝程序,地址是:圖2-2 mysql的下載然后是安裝和配置,根據(jù)軟件的提示就可以實(shí)現(xiàn)安裝,在安裝過(guò)程中根據(jù)個(gè)人需要選擇語(yǔ)言和各服務(wù)懸想便可以了。下面用圖片展示安裝和配置的過(guò)程:圖2-3 mysql的安裝圖2-4 mys

18、ql的安裝圖2-5 mysql的配置2.3 tomcat 6.0直接運(yùn)行下載的apache-tomcat-6.0.18.rar.exe文件,按照一般的windows程序安裝步驟即可安裝好tomcat,安裝時(shí)它會(huì)自動(dòng)尋找jdk的位置。安裝過(guò)程中需要選擇一個(gè)文件夾作為tomcat的安裝目錄。具體如下圖所示:圖2-6 服務(wù)器的安裝圖2-7 服務(wù)器的安裝安裝完成以后,添加一個(gè)tomcat的環(huán)境變量,添加方法和jdk的環(huán)境變量的添加方法相同,設(shè)置變量名為tomcat_home,變量值為d:program filesapache software foundationtomcat 6.0。設(shè)置完畢后就可以

19、運(yùn)行tomcat服務(wù)器了。tomcat成功啟動(dòng)后,在瀏覽器中輸入http:/localhost:8080/,如果出現(xiàn)歡迎界面,則說(shuō)明tomcat安裝成功.圖2-8 服務(wù)器的配置第3章 需求分析3.1應(yīng)用需求分析圖書(shū)館管理系統(tǒng)的需求具體體現(xiàn)在圖書(shū)的借閱、歸還以及對(duì)讀者和圖書(shū)信息的添加、修改和刪除等操作。這就要求系統(tǒng)整體的層次清晰,功能完備、合理,操作界面要簡(jiǎn)潔明了,易于操作;系統(tǒng)對(duì)于各個(gè)主要功能要有所劃分,讓圖書(shū)館的管理人員的工作分工明確,提高工作效率。根據(jù)以上的需求分析,我們得到以下的圖3-1系統(tǒng)的功能圖圖3-1系統(tǒng)的功能圖3.2功能模塊劃分3.2.1 系統(tǒng)設(shè)置圖書(shū)館的系統(tǒng)設(shè)置是一個(gè)獨(dú)立的管理

20、權(quán)限,它應(yīng)該只能由高級(jí)管理員可以修改,包括以下幾個(gè)個(gè)方面的內(nèi)容:1圖書(shū)館信息設(shè)置2參數(shù)設(shè)置3管理員設(shè)置4. 書(shū)架設(shè)置3.2.2 讀者管理這一功能模塊需要對(duì)圖書(shū)館的所有讀者進(jìn)行管理,它可以分為讀者類型管理和讀者信息管理兩個(gè)部分,每一部分都具有添加、修改和刪除的具體功能3.2.3 圖書(shū)管理這個(gè)模塊需要對(duì)圖書(shū)館的所有圖書(shū)進(jìn)行管理,它又分為兩個(gè)子模塊:圖書(shū)類型管理模塊和圖書(shū)信息管理模塊,每一子模塊都具有添加、刪除和修改的功能。3.2.4 圖書(shū)借還這個(gè)模塊是整個(gè)圖書(shū)館管理系統(tǒng)的核心功能模塊,需要完成對(duì)圖書(shū)的借閱和歸還的功能。1. 借閱流程這個(gè)流程的分析入下圖所示:圖3-2 借書(shū)流程圖2.歸還流程這個(gè)流程

21、的分析入下圖所示:圖3-3 還書(shū)流程圖3.2.5 系統(tǒng)查詢?cè)谶@個(gè)模塊中應(yīng)該實(shí)現(xiàn)圖書(shū)信息查詢、圖書(shū)借閱查詢等幾個(gè)子模塊的功能。1.圖書(shū)信息查詢這一子模塊應(yīng)該具備多種查詢條件下的查詢,例如按書(shū)名、類型、出版社、編碼等條件都可以完成查詢,滿足不同查詢的需要。2.圖書(shū)借閱查詢這一子模塊要滿足對(duì)已借出的圖書(shū)的信息的查詢,包括查看都有哪些圖書(shū)被借出,又是被哪些讀者借走的,方便管理員的管理。第4章 數(shù)據(jù)庫(kù)設(shè)計(jì)4.1 數(shù)據(jù)庫(kù)分析信息的數(shù)量越來(lái)越大,數(shù)據(jù)庫(kù)的作用越發(fā)突出,所以數(shù)據(jù)庫(kù)的建立是系統(tǒng)施實(shí)的主要部分之一,它關(guān)系到整個(gè)系統(tǒng)的運(yùn)行情況,是整個(gè)系統(tǒng)的重要組成部分。本系統(tǒng)使用mysql5.0作為應(yīng)用程序的數(shù)據(jù)庫(kù)

22、??紤]到系統(tǒng)的實(shí)際需求,系統(tǒng)至少需要9張數(shù)據(jù)庫(kù)表,具體為:管理員表、圖書(shū)表、書(shū)架表、圖書(shū)類型表、讀者表、讀者類型表、圖書(shū)證表、借書(shū)表、還書(shū)表。4.2 數(shù)據(jù)庫(kù)的實(shí)現(xiàn)1.e-r功能圖的實(shí)現(xiàn)根據(jù)上面的分析畫(huà)出個(gè)表的e-r圖。圖如下:圖 4-1 數(shù)據(jù)庫(kù)e-r功能圖2.sql語(yǔ)句的實(shí)現(xiàn)創(chuàng)建數(shù)據(jù)庫(kù)名為db_librarysyscreate database db_librarysys(1)創(chuàng)建書(shū)架表create table if not exists tb_bookcase ( id int(10) unsigned not null auto_increment, name varchar(30) de

23、fault null, column_3 char(10) default null, primary key (id) engine=myisam default charset=latin1 auto_increment=4 ;(2)創(chuàng)建圖書(shū)表create table if not exists tb_bookinfo ( barcode varchar(30) default null, bookname varchar(70) default null, typeid int(10) unsigned default null, author varchar(30) default n

24、ull, translator varchar(30) default null, isbn varchar(20) default null, price float(8,2) default null, page int(10) unsigned default null, bookcase int(10) unsigned default null, intime date default null, operator varchar(30) default null, del tinyint(1) default 0, id int(11) not null auto_incremen

25、t, primary key (id) engine=myisam default charset=latin1 auto_increment=7 ;(3)創(chuàng)建圖書(shū)類型表create table if not exists tb_booktype ( id int(10) unsigned not null auto_increment, typename varchar(30) default null, days int(10) unsigned default null, primary key (id) engine=myisam default charset=latin1 auto

26、_increment=4 ;(4)創(chuàng)建借書(shū)表create table if not exists tb_borrow ( id int(10) unsigned not null auto_increment, readerid int(10) unsigned default null, bookid int(10) default null, borrowtime date default null, backtime date default null, operator varchar(30) default null, ifback tinyint(1) default 0, pri

27、mary key (id) engine=myisam default charset=latin1 auto_increment=7 ;(5)創(chuàng)建還書(shū)表create table if not exists tb_giveback ( id int(10) unsigned not null auto_increment, readerid int(11) default null, bookid int(11) default null, backtime date default null, operator varchar(30) default null, primary key (i

28、d) engine=myisam default charset=latin1 auto_increment=4 ;(6)創(chuàng)建管理員表create table if not exists tb_manager ( id int(10) unsigned not null auto_increment, name varchar(30) default null, pwd varchar(30) default null, primary key (id) engine=myisam default charset=latin1 auto_increment=5 ;(7)創(chuàng)建圖書(shū)證參數(shù)表crea

29、te table if not exists tb_parameter ( id int(10) unsigned not null auto_increment, cost int(10) unsigned default null, validity int(10) unsigned default null, primary key (id) engine=myisam default charset=latin1 auto_increment=2 ;(8)創(chuàng)建讀者表create table if not exists tb_reader ( id int(10) unsigned no

30、t null auto_increment, name varchar(20) default null, sex varchar(4) default null, barcode varchar(30) default null, vocation varchar(50) default null, birthday date default null, papertype varchar(10) default null, paperno varchar(20) default null, tel varchar(20) default null, email varchar(100) d

31、efault null, createdate date default null, operator varchar(30) default null, remark text, typeid int(11) default null, primary key (id) engine=myisam default charset=latin1 auto_increment=4 ;(9)創(chuàng)建讀者類型表create table if not exists tb_readertype ( id int(10) unsigned not null auto_increment, name varch

32、ar(50) default null, number int(4) default null, primary key (id) engine=myisam default charset=latin1 auto_increment=4 ;3.創(chuàng)建數(shù)據(jù)庫(kù)根據(jù)e-r功能圖和sql語(yǔ)句完成系統(tǒng)所需要的數(shù)據(jù)庫(kù)圖 4-2 數(shù)據(jù)庫(kù)的圖形界面4.3數(shù)據(jù)庫(kù)中主要表的介紹1. 圖書(shū)信息表此表主要是存放圖書(shū)的基本信息,字段包括:標(biāo)識(shí)、編號(hào)、書(shū)名、類型、作者、譯者、isbn、價(jià)格、頁(yè)數(shù)、所屬書(shū)架、入館時(shí)間、操作員。數(shù)據(jù)結(jié)構(gòu)如下表:字段名數(shù)據(jù)類型數(shù)據(jù)長(zhǎng)度標(biāo)識(shí)int11編號(hào)varchar30書(shū)名varchar70類

33、型varchar30作者varchar30譯者varchar30isbnint10價(jià)格foalt8,2頁(yè)數(shù)varchar10所屬書(shū)架int10操作員varchar30表4-1 圖書(shū)信息表2. 讀者信息表這張表是存放讀者的基本信息,字段包括:標(biāo)識(shí)、姓名、性別、編碼、類型、職業(yè)、生日、證件類型、證件號(hào)、電話、郵箱、日期、操作員。數(shù)據(jù)結(jié)構(gòu)如下表:字段名數(shù)據(jù)類型數(shù)據(jù)長(zhǎng)度標(biāo)識(shí)int11姓名varchar30性別varchar10編碼varchar30類型int11職業(yè)varchar40生日date證件類型varchar10證件號(hào)varchar30電話varchar20郵箱varchar50日期date表

34、 4-2 讀者信息表3. 借書(shū)表此表存放的是借出的所有圖書(shū)信息,字段包括:標(biāo)識(shí)、讀者標(biāo)識(shí)、圖書(shū)標(biāo)識(shí)、借書(shū)時(shí)間、歸還時(shí)間、操作員、是否歸還。字段名數(shù)據(jù)類型數(shù)據(jù)長(zhǎng)度標(biāo)識(shí)int11讀者標(biāo)識(shí)int11圖書(shū)標(biāo)識(shí)int11借書(shū)時(shí)間date歸還時(shí)間date操作員varchar30表 4-3 借書(shū)表4. 還書(shū)表詞表存放的是還書(shū)的信息,字段包括:標(biāo)識(shí)、讀者標(biāo)識(shí)、圖書(shū)標(biāo)識(shí)、歸還時(shí)間、操作員。字段名數(shù)據(jù)類型數(shù)據(jù)長(zhǎng)度標(biāo)識(shí)int11讀者標(biāo)識(shí)int11圖書(shū)標(biāo)識(shí)int11歸還時(shí)間date操作員varchar30表 4-4 還書(shū)表第5章 程序設(shè)計(jì)5.1 系統(tǒng)模塊組成系統(tǒng)模塊組成如下圖所示:圖書(shū)館管理系統(tǒng)系統(tǒng)設(shè)置讀者管理圖書(shū)借

35、閱系統(tǒng)查詢口令修改退出系統(tǒng)圖書(shū)管理圖書(shū)館信息管理員設(shè)置參數(shù)設(shè)置書(shū)架設(shè)置類型管理檔案管理類型管理檔案管理圖書(shū)借閱圖書(shū)續(xù)借圖書(shū)歸還檔案查詢借閱查詢修改退出圖 5-1 系統(tǒng)功能模塊圖5.2 登陸窗口的實(shí)現(xiàn)整個(gè)系統(tǒng)的初始程序就是登陸界面,好的登陸界面給人的感覺(jué)應(yīng)該簡(jiǎn)單,友好,這是軟件設(shè)計(jì)的基本要求。為此設(shè)計(jì)如下圖5-2所示的登陸界面。圖 5-2 登陸界面在這里系統(tǒng)執(zhí)行的是login.jsp頁(yè)面,頁(yè)面提示需要輸入管理員名稱和密碼,然后點(diǎn)擊確定執(zhí)行登陸。登陸頁(yè)面的代碼是:               管理員名稱:   &nbs

36、p; 管理員密碼:               5.3 登錄密碼的認(rèn)證在登陸界面中,主要處理的是判斷當(dāng)前管理員輸入的信息是否正確。如果不正確則彈出失敗頁(yè)面,下面是登陸失敗的頁(yè)面:圖5-3 登陸失敗頁(yè)面如果正確,那么判斷它屬于哪種權(quán)限的管理員。因?yàn)榇斯芾硐到y(tǒng)在登錄后不同權(quán)限的管理員顯示的窗體與實(shí)現(xiàn)的功能都不是一樣的,它們會(huì)有所差別!登陸時(shí)對(duì)管理員名稱和密碼的判斷由manager類中的方法去控制跳轉(zhuǎn),然后調(diào)用dao中的方法去訪問(wèn)數(shù)據(jù)庫(kù),查詢數(shù)據(jù)庫(kù)中是否有與其匹配的數(shù)據(jù)。實(shí)現(xiàn)這段功能的代碼是:/ 管理員身份驗(yàn)證public act

37、ionforward managerlogin(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response) managerform managerform = (managerform) form;managerform.setname(managerform.getname();managerform.setpwd(managerform.getpwd();int ret = managerdao.checkmanager(managerform);syste

38、m.out.print(驗(yàn)證結(jié)果ret的值: + ret);if (ret = 1) httpsession session = request.getsession();session.setattribute(manager, managerform.getname();return mapping.findforward(managerloginok); else request.setattribute(error, 您輸入的管理員名稱或密碼錯(cuò)誤!);return mapping.findforward(error);5.4 主頁(yè)面的實(shí)現(xiàn)若管理員登陸成功,系統(tǒng)將轉(zhuǎn)入主界面,系統(tǒng)會(huì)根據(jù)管

39、理員的權(quán)限顯示對(duì)應(yīng)的模塊區(qū)域。這是管理員進(jìn)行操作的主要界面,各種功能都集中在上面。管理員根據(jù)界面上的不同功能區(qū)進(jìn)行不同需求的的操作,主界面如下圖5-4所示。 圖 5-4 主頁(yè)面主界面包含了系統(tǒng)設(shè)置、讀者管理、圖書(shū)管理、圖書(shū)借還、系統(tǒng)查詢更改口令、退出系統(tǒng)等功能。還有一些輔助的工具例如刷新頁(yè)面、關(guān)閉系統(tǒng)、日歷、時(shí)鐘等。此頁(yè)面集中了本系統(tǒng)的大多數(shù)主要的功能選項(xiàng)。制作這樣一個(gè)頁(yè)面是為了提高用戶的效率。因?yàn)榇舜绑w中的功能在后面逐一實(shí)現(xiàn),所有在這里就不在解釋其中的代碼了。5.5 各個(gè)功能模塊的實(shí)現(xiàn)5.5.1 系統(tǒng)設(shè)置功能的實(shí)現(xiàn) 在這個(gè)模塊中包括了圖書(shū)館信息、管理員設(shè)置、參數(shù)設(shè)置、書(shū)架設(shè)置四項(xiàng)功能。頁(yè)面如

40、圖 5-5所示:圖 5-5 系統(tǒng)設(shè)置1.圖書(shū)館信息管理員點(diǎn)擊這個(gè)選項(xiàng)時(shí)跳出圖5-6的頁(yè)面,在這個(gè)頁(yè)面中可以修改圖書(shū)館信息,但這個(gè)信息不應(yīng)該隨意修改,所以應(yīng)屬于高級(jí)權(quán)限的功能。圖 5-6 圖書(shū)館信息修改圖書(shū)館的信息需要通過(guò)程序中的library去控制跳轉(zhuǎn)到library_modify.jsp頁(yè)面,再?gòu)捻?yè)面去獲得修改的信息然后通過(guò)dao方法把獲得到的信息保存到數(shù)據(jù)庫(kù)去。實(shí)現(xiàn)功能的代碼是:public class library extends action librarydao librarydao=null; public library() librarydao=new librarydao(

41、); public actionforward execute(actionmapping mapping, actionform form, httpservletrequest request, httpservletresponse response) libraryform libraryform=(libraryform) form; string str=request.getparameter(action); if(libraryquery.equals(str) return librarymodifyquery(mapping,form,request,response);

42、 else if(librarymodify.equals(str) return librarymodify(mapping,form,request,response); request.setattribute(error,您的操作有誤!); return mapping.findforward(error); private actionforward librarymodify(actionmapping mapping, actionform form, httpservletrequest request, httpservletresponse response) librar

43、yform libraryform = (libraryform) form; libraryform.setid(libraryform.getid(); libraryform.setlibraryname(libraryform.getlibraryname(); libraryform.setcurator(libraryform.getcurator(); libraryform.settel(libraryform.gettel(); libraryform.setaddress(libraryform.getaddress(); libraryform.setemail(libr

44、aryform.getemail(); libraryform.seturl(libraryform.geturl(); libraryform.setcreatedate(libraryform.getcreatedate(); libraryform.setintroduce(libraryform.getintroduce(); int ret = librarydao.update(libraryform); if (ret =0) request.setattribute(error, 圖書(shū)館信息修改失?。?; return mapping.findforward(error); else return mapping.findforward(librarymodify); private a

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論