圖書(shū)管理系統(tǒng)計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)論文
《圖書(shū)管理系統(tǒng)計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)論文》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《圖書(shū)管理系統(tǒng)計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)論文(30頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 畢業(yè)設(shè)計(jì)(論文) 題 目: 圖書(shū)管理系統(tǒng) 學(xué) 院: 計(jì)算機(jī)科學(xué)與工程學(xué)院 專(zhuān) 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)生姓名: 學(xué) 號(hào): 20091216
2、 指導(dǎo)教師: 目 錄 1 引言 3 1.1 圖書(shū)管理的現(xiàn)狀 3 1.2 現(xiàn)有圖書(shū)管理系統(tǒng)的概述 4 1.3 選題的目的、意義 4 1.4 圖書(shū)管理系統(tǒng)的可行性分析 5 1.5 系統(tǒng)開(kāi)發(fā)運(yùn)行環(huán)境 5 第二章 本系統(tǒng)開(kāi)發(fā)相關(guān)技術(shù)介紹 6 2.1 java 6 2.2 MySql 8 2.3 Struts2 9 2.4 Hibernate 10 2.5 C/S結(jié)構(gòu) 10 2.6 Web服務(wù)器 12 第三章 系統(tǒng)總體設(shè)計(jì)分析 12 3.1 系統(tǒng)需求
3、分析 12 3.2 系統(tǒng)實(shí)現(xiàn)的目標(biāo) 13 3.3 系統(tǒng)功能模塊設(shè)計(jì) 13 3.4 系統(tǒng)功能結(jié)構(gòu)圖 13 3.5 系統(tǒng)流程圖 16 第四章 數(shù)據(jù)總體結(jié)構(gòu)設(shè)計(jì) 17 4.1 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì) 17 4.2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì) 18 4.3 圖書(shū)管理系統(tǒng)的系統(tǒng)E-R圖 20 4.4 數(shù)據(jù)表設(shè)計(jì) 21 第五章 圖書(shū)管理系統(tǒng)詳細(xì)設(shè)計(jì) 23 5.1 系統(tǒng)流程分析 23 5.2 主要模塊的運(yùn)行 23 5.2.1 登陸界面 23 5.2.2 圖書(shū)信息管理模塊 24 5.2.3 圖書(shū)借還信息模塊 25 5.3 系統(tǒng)開(kāi)發(fā)的遇到的相關(guān)問(wèn)題及解決 26
4、 5.3.1 圖書(shū)管理系統(tǒng)索引 26 5.3.2 如何驗(yàn)證輸入的字符串 26 5.3.3 自動(dòng)計(jì)算圖書(shū)歸還日期 27 5.3.4 系統(tǒng)登陸驗(yàn)證碼的實(shí)現(xiàn) 27 第六章 結(jié)論 30 6.1 主要研究?jī)?nèi)容及成果 31 6.2 今后進(jìn)一步研究方向 31 參考文獻(xiàn) 31 學(xué)校圖書(shū)管理系統(tǒng)的開(kāi)發(fā) 摘 要 當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開(kāi)信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。由于信息技術(shù)的發(fā)展,許多行業(yè)在經(jīng)營(yíng)管理過(guò)程中對(duì)計(jì)
5、算機(jī)技術(shù)的依賴(lài)程度也不斷增強(qiáng)。 在對(duì)JSP語(yǔ)言,SQL Server2005數(shù)據(jù)庫(kù)技術(shù)以及當(dāng)今社會(huì)的圖書(shū)管理系統(tǒng)的需求進(jìn)行了較深入的學(xué)習(xí)和調(diào)查的基礎(chǔ)上,設(shè)計(jì)出了該圖書(shū)管理系統(tǒng),該系統(tǒng)主要實(shí)現(xiàn)了圖書(shū)管理,用戶(hù)信息及管理信息的管理同時(shí)在書(shū)籍信息管理中還包括圖書(shū)的更新,書(shū)籍的過(guò)戶(hù)和監(jiān)督卡管理等功能。 本論文主要闡述了書(shū)籍管理系統(tǒng)的需求分析,功能模塊劃分,數(shù)據(jù)庫(kù)模式分析,并具此設(shè)計(jì)了基于c/S模式的數(shù)據(jù)庫(kù)結(jié)構(gòu)和JSP程序. 關(guān)鍵詞:JSP, SQL Server2000, ODBC, JavaBean 1 引言 隨著計(jì)算機(jī)及網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,Internet/Intranet應(yīng)
6、用在全球范圍內(nèi)日益普及,當(dāng)今社會(huì)正快速向信息化社會(huì)前進(jìn),信息系統(tǒng)的作用也越來(lái)越大。圖書(shū)館在正常運(yùn)營(yíng)中總是面對(duì)大量的讀者信息,書(shū)籍信息以及由兩者相互作用產(chǎn)生的借書(shū)信息,還書(shū)信息。因此圖書(shū)管理信息化是發(fā)展的必然趨勢(shì)。用結(jié)構(gòu)化系統(tǒng)分析與設(shè)計(jì)的方法,建立一套有效的圖書(shū)信息管理系統(tǒng),可以減輕工作,將工作科學(xué)化、規(guī)范化,提高了圖書(shū)館信息管理的工作質(zhì)量因此根據(jù)圖書(shū)館目前實(shí)際的管理情況開(kāi)發(fā)一套圖書(shū)管理系統(tǒng)是十分必要的。 1.1 圖書(shū)管理的現(xiàn)狀 一直以來(lái)人們使用傳統(tǒng)的人工方式管理圖書(shū)館的日常工作,對(duì)于圖書(shū)館的借書(shū)和還書(shū)過(guò)程,想必大家都已很熟悉。在計(jì)算機(jī)尚未在圖書(shū)管理系統(tǒng)廣泛使用之前,借書(shū)和還書(shū)過(guò)程主要依靠
7、手工。一個(gè)最典型的手工處理還書(shū)過(guò)程就是:讀者將要借的書(shū)和借閱證交給工作人員,工作人員將每本書(shū)上附帶的描述書(shū)的信息的卡片和讀者的借閱證放在一個(gè)小格欄里,并在借閱證和每本書(shū)貼的借閱條上填寫(xiě)借閱信息。這樣借書(shū)過(guò)程就完成了。還書(shū)時(shí),讀者將要還的書(shū)交給工作人員,工作人員根據(jù)圖書(shū)信息找到相應(yīng)的書(shū)卡和借閱證,并填好相應(yīng)的還書(shū)信息,這樣還書(shū)過(guò)程就完成了。 隨著近年來(lái)信息技術(shù)及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的不斷發(fā)展, 圖書(shū)館也先從傳統(tǒng)的圖 書(shū)館發(fā)展到自動(dòng)化圖書(shū)館,再發(fā)展到今天的數(shù)字圖書(shū)館,這些變化使得圖書(shū)館的形象越來(lái)越現(xiàn)代化,人們查找資料也更加方便。對(duì)于一些小圖書(shū)館和一些圖書(shū)室來(lái)說(shuō),由于工作人員比較少,長(zhǎng)期以來(lái),作為圖書(shū)
8、館的主要工作—圖書(shū)借閱一直未能很好地開(kāi)展。在平常的圖書(shū)借閱工作中, 由于大部分讀者不熟悉圖書(shū)館藏書(shū),且對(duì)圖書(shū)排架分類(lèi)的不了解,往往花費(fèi)很長(zhǎng)時(shí)間才能找到其所需的書(shū)。為提高管理效率,更好地為讀者服務(wù),利用已有的辦公局域網(wǎng)絡(luò)條件,將館藏書(shū)籍做成基于WEB的查詢(xún)系統(tǒng),實(shí)現(xiàn)圖書(shū)在一個(gè)單位的網(wǎng)絡(luò)內(nèi)甚至Internet上查詢(xún),可使圖書(shū)查詢(xún)和借閱變得更加方便快捷,從而使圖書(shū)室的工作效率得到明顯提高。 傳統(tǒng)的圖書(shū)管理模式其最大的特點(diǎn)是手工;首先要把買(mǎi)來(lái)的圖書(shū)資料登記到資料本上,再給每本書(shū)分類(lèi)貼上標(biāo)簽及制作和標(biāo)簽相對(duì)應(yīng)的圖書(shū)分類(lèi)卡片,最后把圖書(shū)分類(lèi)卡片按類(lèi)別分別放置在文件柜里。對(duì)于有學(xué)生(教師)證的學(xué)生(教師)
9、來(lái)說(shuō)還要對(duì)他們資料作一定的記錄。并且在人們來(lái)借書(shū)的時(shí)候,首先持證件者要去存放圖書(shū)分類(lèi)卡片的文件柜里查找想借的書(shū)是否在架,如果卡片存在,再按照?qǐng)D書(shū)分類(lèi)卡片在相應(yīng)的書(shū)架上找到需要的圖書(shū),然后登記持證件者的借還書(shū)時(shí)間和在書(shū)簽條上寫(xiě)下借還書(shū)記錄,之后把借書(shū)證留在那里;還書(shū)的時(shí)候,相對(duì)應(yīng)的消去出借記錄;這樣做起來(lái)比較麻煩,比較費(fèi)時(shí)間。傳統(tǒng)圖書(shū)管理的特點(diǎn)是一直以來(lái),中小型書(shū)店、中小學(xué)的小型圖書(shū)館及各高校圖書(shū)館和資料室使用傳統(tǒng)的人工方式管理圖書(shū)檔案、會(huì)員檔案。這種管理方式存在著諸多缺點(diǎn),如:手續(xù)繁瑣、工作量大、效率低下、出錯(cuò)率高等,同時(shí)給對(duì)大量資料的查詢(xún)、更新及維護(hù)都帶來(lái)不少困難。 1.2 現(xiàn)有圖書(shū)管理
10、系統(tǒng)的概述 在試用了一些個(gè)圖書(shū)管理系統(tǒng)和查閱了大量相關(guān)資料文獻(xiàn)的基礎(chǔ)上,發(fā)現(xiàn)那些系統(tǒng)在幾個(gè)方面已經(jīng)不符合時(shí)代的要求,由于設(shè)計(jì)人員及其所用的工具的不同,有Visual Basic6.0、Visual ForPro6.0、Power Builder等,再加上這些圖書(shū)管理系統(tǒng)設(shè)計(jì)的時(shí)間也不一樣,所用具體場(chǎng)合也有區(qū)別,因此在功能上除了圖書(shū)資料管理所需的基本功能之外也有所不同。經(jīng)過(guò)比較總結(jié)他們都實(shí)現(xiàn)了以下圖書(shū)管理的基本功能:1、圖書(shū)檢索模塊:是圖書(shū)管理系統(tǒng)的重要模塊之一,是讀者快速查詢(xún)圖書(shū)的途徑。2、圖書(shū)管理模塊:是圖書(shū)管理員操作模塊,讀者是無(wú)權(quán)進(jìn)入的。本模塊由借出圖書(shū)登記、歸還圖書(shū)登記和續(xù)借圖書(shū)登記
11、子模塊構(gòu)成。3、數(shù)據(jù)維護(hù)模塊:是由圖書(shū)管理員控制的模塊,它由增加、修改和刪除讀者,增加、修改刪除圖書(shū),瀏覽修改讀者、瀏覽修改圖書(shū)等程序組成。 4、數(shù)據(jù)統(tǒng)計(jì)模塊:由讀者統(tǒng)計(jì)、圖書(shū)統(tǒng)計(jì)、借出圖書(shū)分類(lèi)統(tǒng)計(jì)、到期末歸還圖書(shū)讀者統(tǒng)計(jì)幾部分組成。這些系統(tǒng)解決了以前的那種管理方式所存在著的諸如手續(xù)繁瑣、工作量大、效率低下、出錯(cuò)率高等缺點(diǎn),設(shè)計(jì)出的系統(tǒng)能使讀者快速檢索到自己喜愛(ài)的書(shū),圖書(shū)管理員能減輕工作量。 但是鑒于開(kāi)發(fā)工具和開(kāi)發(fā)當(dāng)時(shí)的科技發(fā)展水平所限,再加上歷史發(fā)展到今天,人們的生活環(huán)境已經(jīng)發(fā)生了改變,大家對(duì)于圖書(shū)查詢(xún)這方面的要求也更高。比如在一個(gè)局域網(wǎng)內(nèi),大家希望能在本臺(tái)電腦上就能查找自己想要的圖書(shū),而
12、不用跑到圖書(shū)館或圖書(shū)室里去用那里的電腦查詢(xún),這就需要一個(gè)網(wǎng)絡(luò)化的聯(lián)機(jī)查詢(xún)系統(tǒng)。 1.3 選題的目的意義 隨著社會(huì)的進(jìn)步,信息技術(shù)的廣泛應(yīng)用,數(shù)字化管理的優(yōu)勢(shì)日趨顯著。針對(duì)中小型圖書(shū)館或圖書(shū)室管理落后的情況,設(shè)計(jì)實(shí)現(xiàn)一個(gè)圖書(shū)信息管理系統(tǒng),通過(guò)與計(jì)算機(jī)的結(jié)合使用對(duì)中小型圖書(shū)館或圖書(shū)室的各種圖書(shū)信息進(jìn)行管理可以給管理員和用戶(hù)帶來(lái)以下不同的方便:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高工作效率,也是圖書(shū)館等部門(mén)管理科學(xué)化、正規(guī)化的重要標(biāo)志之一。而且計(jì)算機(jī)管理的成本不斷降低。因此,開(kāi)發(fā)一套這樣的中小型圖書(shū)管理軟件已經(jīng)很有必要,并且實(shí)現(xiàn)研究服務(wù)于實(shí)踐
13、的原則。 1.4 圖書(shū)管理系統(tǒng)可行性分析 本次畢業(yè)設(shè)計(jì)題目:“圖書(shū)管理系統(tǒng)開(kāi)發(fā)”主要目的是利用數(shù)據(jù)庫(kù)軟件編制一個(gè)管理軟件,用以實(shí)現(xiàn)圖書(shū)、讀者以及日常工作等多項(xiàng)管理;同時(shí)對(duì)整個(gè)系統(tǒng)的分析、設(shè)計(jì)過(guò)程給出一個(gè)完整論證。圖書(shū)管理系統(tǒng)是一種基于集中統(tǒng)一規(guī)劃的數(shù)據(jù)庫(kù)數(shù)據(jù)管理新模式。在對(duì)圖書(shū)、讀者的管理,其實(shí)是對(duì)圖書(shū)、讀者數(shù)據(jù)的管理。本系統(tǒng)的建成無(wú)疑會(huì)為管理者對(duì)圖書(shū)管理系統(tǒng)提供極大的幫助。本系統(tǒng)的設(shè)計(jì)主要從以下幾方面做起:系統(tǒng)業(yè)務(wù)流程分析、系統(tǒng)的功能設(shè)計(jì)、系統(tǒng)的數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)等。作這些工作需對(duì)數(shù)據(jù)庫(kù)知識(shí)有足夠認(rèn)識(shí),并深入的了解Java的使用和管理系統(tǒng)的相關(guān)知識(shí)。在信息時(shí)代的今天,人類(lèi)需要對(duì)在政治、經(jīng)濟(jì)
14、、軍事、文化、科研、教育等領(lǐng)域產(chǎn)生的大量信息進(jìn)行管理,并對(duì)數(shù)據(jù)進(jìn)行加工處理,數(shù)據(jù)庫(kù)技術(shù)則是信息管理與數(shù)據(jù)處理的先進(jìn)技術(shù)。隨著信息量的不斷增加,作為計(jì)算機(jī)的三大主要應(yīng)用(科學(xué)計(jì)算、過(guò)程控制和數(shù)據(jù)處理)之一的數(shù)據(jù)處理,已迅速上升為計(jì)算機(jī)應(yīng)用的主要方面,數(shù)據(jù)庫(kù)技術(shù)則成為人們?nèi)粘I钪刑幚頂?shù)據(jù)不可缺少的有力工具,并且現(xiàn)代的信息管理系統(tǒng)幾乎都以數(shù)據(jù)庫(kù)技術(shù)作為核心。 現(xiàn)在大多數(shù)的圖書(shū)管理方式為手工處理,重復(fù)勞動(dòng)多,勞動(dòng)強(qiáng)度大,而且容易出錯(cuò),新系統(tǒng)的使用能否可以很好的解決這些問(wèn)題要看系統(tǒng)的可行性,可行性研究的目的是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。系統(tǒng)的可行性分析有以下幾個(gè)方面: (1
15、)技術(shù)可行性:處理速度快、準(zhǔn)確通過(guò)權(quán)限的設(shè)置,數(shù)據(jù)的安全性好、方便查詢(xún)、借閱管理等。 (2)經(jīng)濟(jì)可行性:系統(tǒng)建設(shè)不需要很大的投入、可縮減人力投入。 (3)運(yùn)行上可行性:本系統(tǒng)作為一個(gè)小型的圖書(shū)館信息管理系統(tǒng),所耗費(fèi)的 資源非常的小。 (4)從各種社會(huì)因素可行性分析:可降低工作人員工作強(qiáng)度,提高效率,會(huì) 得到學(xué)校工作人員的一致同意的。 綜上所述通過(guò)可行性分析認(rèn)為新系統(tǒng)的開(kāi)發(fā)方案切實(shí)可行,可進(jìn)行開(kāi)發(fā)。 1.5 系統(tǒng)開(kāi)發(fā)運(yùn)行環(huán)境 系統(tǒng)開(kāi)發(fā)環(huán)境:MyEclipse Java Enterprise7.0 系統(tǒng)開(kāi)發(fā)語(yǔ)言:Java 運(yùn)行平臺(tái):Windows 7 數(shù)據(jù)庫(kù):sq
16、l server 2005 Web服務(wù)器: Tomcat6.0 第二章 本系統(tǒng)開(kāi)發(fā)相關(guān)技術(shù)介紹 2.1 java Java已用動(dòng)態(tài)的交互應(yīng)用軟件使Web栩栩如生。它使開(kāi)發(fā)人員具有‘編寫(xiě)一次到處運(yùn)行TM”的巨大能力。而且,借助其JavaAPI及其編程語(yǔ)言上的Java虛擬機(jī),它已產(chǎn)生一種分布信息的嶄新模式。這種模式叫做Java企業(yè)計(jì)算,正在幫助各企業(yè)以各種不同的方法取得競(jìng)爭(zhēng)優(yōu)勢(shì)。網(wǎng)管和控制已大大簡(jiǎn)化。軟件分配基本上是免費(fèi)的,而且立即可實(shí)現(xiàn)。電子貿(mào)易已獲得。占有成本大幅度降低。信息和應(yīng)用軟件到處可存取。Java建立在簡(jiǎn)單的前提基礎(chǔ)上,即所有微處理器都應(yīng)講同一種語(yǔ)言——所有內(nèi)部采用芯片
17、的產(chǎn)品都應(yīng)能一起工作,無(wú)縫而方便地共享信息。它已經(jīng)改變企業(yè)和個(gè)人同Internet大交道的方式?,F(xiàn)在,它正在對(duì)消費(fèi)類(lèi)產(chǎn)品產(chǎn)生明顯的影響,而且從總體上更加深刻地影響企業(yè)計(jì)算。 借助Java,您可自由自在地使用您已擁有的硬件和軟件。這是因?yàn)镴ava是獨(dú)立于平臺(tái)的。它還可使您超越企業(yè)計(jì)算,使應(yīng)用軟件在便攜式計(jì)算機(jī)、信息亭、電視、蜂窩電話(huà)和其他大量設(shè)備上運(yùn)行。 全世界的公司都已發(fā)現(xiàn)Java數(shù)不勝數(shù)的用途。所有用途可從其無(wú)可比擬的能力,即提高可靠性、安全性和簡(jiǎn)化各種不同計(jì)算產(chǎn)品和環(huán)境的能力中受益非淺,而且節(jié)省的時(shí)間和費(fèi)用十分可觀(guān)。 Java無(wú)處不在。它已擁有幾百萬(wàn)個(gè)用戶(hù),其發(fā)展速度要快于在它以前的
18、其他任何一種計(jì)算機(jī)產(chǎn)品。它可位于任何地方,而且能到處運(yùn)行。Java正在迅速被用做傳播信息的事實(shí)上標(biāo)準(zhǔn),這是因?yàn)樗瓤山o企業(yè),也可給最終用戶(hù)帶來(lái)似乎數(shù)不清的好處。 Java的特點(diǎn): 1、Java語(yǔ)言是簡(jiǎn)單的。Java語(yǔ)言的語(yǔ)法與C語(yǔ)言和C++語(yǔ)言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用Java。另一方面,Java丟棄了C++ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動(dòng)的強(qiáng)制類(lèi)型轉(zhuǎn)換。特別地,Java語(yǔ)言不使用指針,并提供了自動(dòng)的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂(yōu)。 2、Java語(yǔ)言是一個(gè)面向?qū)ο蟮?。Java語(yǔ)言提供類(lèi)、接口和繼承等原語(yǔ),為了
19、簡(jiǎn)單起見(jiàn),只支持類(lèi)之間的單繼承,但支持接口之間的多繼承,并支持類(lèi)與接口之間的實(shí)現(xiàn)機(jī)制(關(guān)鍵字為implements)。Java語(yǔ)言全面支持動(dòng)態(tài)綁定,而C++ 語(yǔ)言只對(duì)虛函數(shù)使用動(dòng)態(tài)綁定??傊琂ava語(yǔ)言是一個(gè)純的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言。 3、Java語(yǔ)言是分布式的。Java語(yǔ)言支持Internet應(yīng)用的開(kāi)發(fā),在基本的Java應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口(java net),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類(lèi)庫(kù),包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開(kāi)發(fā)分布式應(yīng)用的重要手段。 4、Java語(yǔ)言
20、是健壯的。Java的強(qiáng)類(lèi)型機(jī)制、異常處理、廢料的自動(dòng)收集等是Java程序健壯性的重要保證。對(duì)指針的丟棄是Java的明智選擇。Java的安全檢查機(jī)制使得Java更具健壯性。 5、Java語(yǔ)言是安全的。Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個(gè)安全機(jī)制以防惡意代碼的攻擊。除了Java語(yǔ)言具有的許多安全特性以外,Java對(duì)通過(guò)網(wǎng)絡(luò)下載的類(lèi)具有一個(gè)安全防范機(jī)制(類(lèi)ClassLoader),如分配不同的名字空間以防替代本地的同名類(lèi)、字節(jié)代碼檢查,并提供安全管理機(jī)制(類(lèi)SecurityManager)讓Java應(yīng)用設(shè)置安全哨兵。 6、Java語(yǔ)言是體系結(jié)構(gòu)中立的。Java程序(
21、后綴為java的文件)在Java平臺(tái)上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件), 然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。 7、Java語(yǔ)言是可移植的。這種可移植性來(lái)源于體系結(jié)構(gòu)中立性,另外,Java還嚴(yán)格規(guī)定了各個(gè)基本數(shù)據(jù)類(lèi)型的長(zhǎng)度。Java系統(tǒng)本身也具有很強(qiáng)的可移植性,Java編譯器是用Java實(shí)現(xiàn)的,Java的運(yùn)行環(huán)境是用ANSI C實(shí)現(xiàn)的。 8、Java語(yǔ)言是解釋型的。如前所述,Java程序在Java平臺(tái)上被編譯為字節(jié)碼格式, 然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。在運(yùn)行時(shí),Java平臺(tái)中的J
22、ava解釋器對(duì)這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過(guò)程中需要的類(lèi)在聯(lián)接階段被載入到運(yùn)行環(huán)境中。 9、Java是高性能的。與那些解釋型的高級(jí)腳本語(yǔ)言相比,Java的確是高性能的。事實(shí)上,Java的運(yùn)行速度隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來(lái)越接近于C++。 10、Java語(yǔ)言是多線(xiàn)程的。在Java語(yǔ)言中,線(xiàn)程是一種特殊的對(duì)象,它必須由Thread類(lèi)或其子(孫)類(lèi)來(lái)創(chuàng)建。通常有兩種方法來(lái)創(chuàng)建線(xiàn)程:其一,使用型構(gòu)為T(mén)hread(Runnable) 的構(gòu)造子將一個(gè)實(shí)現(xiàn)了Runnable接口的對(duì)象包裝成一個(gè)線(xiàn)程,其二,從Thread類(lèi)派生出子類(lèi)并重寫(xiě)run方法,使用該子類(lèi)創(chuàng)建的
23、對(duì)象即為線(xiàn)程。值得注意的是Thread類(lèi)已經(jīng)實(shí)現(xiàn)了Runnable接口,因此,任何一個(gè)線(xiàn)程均有它的run方法,而run方法中包含了線(xiàn)程所要運(yùn)行的代碼。線(xiàn)程的活動(dòng)由一組方法來(lái)控制。 Java語(yǔ)言支持多個(gè)線(xiàn)程的同時(shí)執(zhí)行,并提供多線(xiàn)程之間的同步機(jī)制(關(guān)鍵字為synchronized)。 11、Java語(yǔ)言是動(dòng)態(tài)的。Java語(yǔ)言的設(shè)計(jì)目標(biāo)之一是適應(yīng)于動(dòng)態(tài)變化的環(huán)境。Java程序需要的類(lèi)能夠動(dòng)態(tài)地被載入到運(yùn)行環(huán)境,也可以通過(guò)網(wǎng)絡(luò)來(lái)載入所需要的類(lèi)。這也有利于軟件的升級(jí)。另外,Java中的類(lèi)有一個(gè)運(yùn)行時(shí)刻的表示,能進(jìn)行運(yùn)行時(shí)刻的類(lèi)型檢查。 Java語(yǔ)言的優(yōu)良特性使得Java應(yīng)用具有無(wú)比的健壯
24、性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護(hù)費(fèi)用。Java對(duì)對(duì)象技術(shù)的全面支持和Java平臺(tái)內(nèi)嵌的API能縮短應(yīng)用系統(tǒng)的開(kāi)發(fā)時(shí)間并降低成本。Java的編譯一次,到處可運(yùn)行的特性使得它能夠提供一個(gè)隨處可用的開(kāi)放結(jié)構(gòu)和在多平臺(tái)之間傳遞信息的低成本方式。特別是Java企業(yè)應(yīng)用編程接口(Java Enterprise APIs)為企業(yè)計(jì)算及電子商務(wù)應(yīng)用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類(lèi)庫(kù)。 2.2 MySql MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQL AB公司。在2008年1月16號(hào)被Sun公司收購(gòu)。而2009年,SUN又被Oracle收購(gòu).對(duì)于Mysql的前途,沒(méi)有任何人抱樂(lè)觀(guān)
25、的態(tài)度.目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。MySQL的官方網(wǎng)站的網(wǎng)址是: MySQL最初的開(kāi)發(fā)者的意圖是用mSQL和他們自己的快速低級(jí)例程(ISAM)去連接表格。不管怎樣,在經(jīng)過(guò)一些測(cè)試后,開(kāi)發(fā)者得出結(jié)論:mSQL并沒(méi)有他們需要的那么快和靈活。這導(dǎo)致了一個(gè)使用幾乎和mSQL一樣的API接口的用于他們的數(shù)據(jù)庫(kù)的新的SQL接口的產(chǎn)生,這樣,這個(gè)API被設(shè)計(jì)成允許為用于mSQL而寫(xiě)的第三方代碼更容易移植到MySQL。 MySql 特性:
26、 1.使用C和C++編寫(xiě),并使用了多種編譯器進(jìn)行測(cè)試,保證源代碼的可移植性 2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng) 3.為多種編程語(yǔ)言提供了API。這些編程語(yǔ)言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 4.支持多線(xiàn)程,充分利用CPU資源 5.優(yōu)化的SQL查詢(xún)算法,有效地提高查詢(xún)速度 6.既能夠作為一個(gè)單獨(dú)的應(yīng)用程序應(yīng)用在客戶(hù)端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為
27、一個(gè)庫(kù)而嵌入到其他的軟件中提供多語(yǔ)言支持,常見(jiàn)的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名 7.提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫(kù)連接途徑 8.提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫(kù)操作的管理工具 9.可以處理?yè)碛猩锨f(wàn)條記錄的大型數(shù)據(jù)庫(kù) MySql 應(yīng)用: 與其他的大型數(shù)據(jù)庫(kù)例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQL Cluster的功能和效率都相對(duì)比較差)等,但是這絲毫也沒(méi)有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小
28、型企業(yè)來(lái)說(shuō),MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開(kāi)放源碼軟件,因此可以大大降低總體擁有成本。 目前Internet上流行的網(wǎng)站構(gòu)架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作為操作系統(tǒng),Apache作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫(kù),PHP作為服務(wù)器端腳本解釋器。由于這四個(gè)軟件都是免費(fèi)或開(kāi)放源碼軟件(FLOSS),因此使用這種方式不用花一分錢(qián)就可以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)。 2.3 Struts2 struts是開(kāi)源軟件。使用Struts的目的是為了幫助我們減少在運(yùn)用MVC設(shè)計(jì)模型來(lái)開(kāi)發(fā)Web應(yīng)用的時(shí)間。如果我
29、們想混合使用Servlets和JSP的優(yōu)點(diǎn)來(lái)建立可擴(kuò)展的應(yīng)用,struts是一個(gè)不錯(cuò)的選擇。 運(yùn)行流程:服務(wù)器啟動(dòng)后,根據(jù)web.xml加載ActionServlet讀取struts-config.xml文件內(nèi)容到內(nèi)存。 以登錄為例:第一次進(jìn)login.jsp會(huì)先實(shí)例化Form、把默認(rèn)值(String默認(rèn)為空字符串,整形默認(rèn)為0)賦給表單元素。 輸入用戶(hù)名密碼提交表單、提交到action屬性的login.do,通ActionServlet讀struts-config.xml文件找到 action下的path屬性找到.do,通過(guò)name屬性找form-beans中的
30、form-bean的name屬性得到ActionForm的包名類(lèi)名,先實(shí)例化form,把表單的值填充給form,調(diào)用form的validate方法驗(yàn)證、ActionErrors返回null表示驗(yàn)證通過(guò),否則失敗返回input指定的頁(yè)面.驗(yàn)證通過(guò)會(huì)實(shí)例化Action,執(zhí)行Action的excute方法。 2.4 Hibernate Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶(hù)端程序使用,也可以在Servle
31、t/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。 實(shí)際應(yīng)用: Session接口負(fù)責(zé)執(zhí)行被持久化對(duì)象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫(kù)的交流,包含了很多常見(jiàn)的SQL語(yǔ)句)。 SessionFactory接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session對(duì)象。 Configuration接口負(fù)責(zé)配置并啟動(dòng)Hibernate,創(chuàng)建SessionFactory對(duì)象。 Transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作,也可以設(shè)計(jì)編寫(xiě)自己的底層事務(wù)處理代碼。 2.5 C/
32、S結(jié)構(gòu) C/S 結(jié)構(gòu),即大家熟知的客戶(hù)機(jī)和服務(wù)器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu),通過(guò)它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到Client端和Server端來(lái)實(shí)現(xiàn),降低了系統(tǒng)的通訊開(kāi)銷(xiāo)。目前大多數(shù)應(yīng)用軟件系統(tǒng)都是Client/Server形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的Web應(yīng)用發(fā)展,Web和Client/Server 應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶(hù)都可以訪(fǎng)問(wèn)新的和現(xiàn)有的應(yīng)用系統(tǒng),通過(guò)現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。 C/S結(jié)構(gòu)的優(yōu)點(diǎn): C/S結(jié)構(gòu)的優(yōu)點(diǎn)是能充分
33、發(fā)揮客戶(hù)端PC的處理能力,很多工作可以在客戶(hù)端處理后再提交給服務(wù)器。對(duì)應(yīng)的優(yōu)點(diǎn)就是客戶(hù)端響應(yīng)速度快。缺點(diǎn)主要有以下幾個(gè): (1)只適用于局域網(wǎng)。而隨著互聯(lián)網(wǎng)的飛速發(fā)展,移動(dòng)辦公和分布式辦公越來(lái)越普及,這需要我們的系統(tǒng)具有擴(kuò)展性。這種方式遠(yuǎn)程訪(fǎng)問(wèn)需要專(zhuān)門(mén)的技術(shù),同時(shí)要對(duì)系統(tǒng)進(jìn)行專(zhuān)門(mén)的設(shè)計(jì)來(lái)處理分布式的數(shù)據(jù)。 (2)客戶(hù)端需要安裝專(zhuān)用的客戶(hù)端軟件。首先涉及到安裝的工作量,其次任何一臺(tái)電腦出問(wèn)題,如病毒、硬件損壞,都需要進(jìn)行安裝或維護(hù)。特別是有很多分部或?qū)Yu(mài)店的情況,不是工作量的問(wèn)題,而是路程的問(wèn)題。還有,系統(tǒng)軟件升級(jí)時(shí),每一臺(tái)客戶(hù)機(jī)需要重新安裝,其維護(hù)和升級(jí)成本非常高。 (
34、3)對(duì)客戶(hù)端的操作系統(tǒng)一般也會(huì)有限制。可能適應(yīng)于Win98, 但不能用于win2000或Windows XP?;蛘卟贿m用于微軟新的操作系統(tǒng)等等,更不用說(shuō)Linux、Unix等。 C/S架構(gòu)軟件的優(yōu)勢(shì)與劣勢(shì): ?。?)應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。最簡(jiǎn)單的C/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)應(yīng)用由兩部分組成,即客戶(hù)應(yīng)用程序和數(shù)據(jù)庫(kù)服務(wù)器程序。二者可分別稱(chēng)為前臺(tái)程序與后臺(tái)程序。運(yùn)行數(shù)據(jù)庫(kù)服務(wù)器程序的機(jī)器,也稱(chēng)為應(yīng)用服務(wù)器。一旦服務(wù)器程序被啟動(dòng),就隨時(shí)等待響應(yīng)客戶(hù)程序發(fā)來(lái)的請(qǐng)求;客戶(hù)應(yīng)用程序運(yùn)行在用戶(hù)自己的電腦上,對(duì)應(yīng)于數(shù)據(jù)庫(kù)服務(wù)器,可稱(chēng)為客戶(hù)電腦,當(dāng)需要對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行任何操作時(shí),客戶(hù)程序就自動(dòng)地尋
35、找服務(wù)器程序,并向其發(fā)出請(qǐng)求,服務(wù)器程序根據(jù)預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果,應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。 ?。?)數(shù)據(jù)的儲(chǔ)存管理功能較為透明。在數(shù)據(jù)庫(kù)應(yīng)用中,數(shù)據(jù)的儲(chǔ)存管理功能,是由服務(wù)器程序和客戶(hù)應(yīng)用程序分別獨(dú)立進(jìn)行的,前臺(tái)應(yīng)用可以違反的規(guī)則,并且通常把那些不同的運(yùn)行數(shù)據(jù),在服務(wù)器程序中不集中實(shí)現(xiàn),例如訪(fǎng)問(wèn)者的權(quán)限,編號(hào)可以重復(fù)、必須有客戶(hù)才能建立定單這樣的規(guī)則。所有這些,對(duì)于工作在前臺(tái)程序上的最終用戶(hù),是“透明”的,他們無(wú)須過(guò)問(wèn)背后的過(guò)程,就可以完成自己的一切工作。在客戶(hù)服務(wù)器架構(gòu)的應(yīng)用中,前臺(tái)程序不是非?!笆菪 保闊┑氖虑槎冀唤o了服務(wù)器和網(wǎng)絡(luò)。在C/S體系的下,數(shù)據(jù)庫(kù)不能真正成為公
36、共、專(zhuān)業(yè)化的倉(cāng)庫(kù),它受到獨(dú)立的專(zhuān)門(mén)管理。 (3)C/S架構(gòu)的劣勢(shì)是高昂的維護(hù)成本且投資大。首先,采用C/S架構(gòu),要選擇適當(dāng)?shù)臄?shù)據(jù)庫(kù)平臺(tái)來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)的真正“統(tǒng)一”,使分布于兩地的數(shù)據(jù)同步完全交由數(shù)據(jù)庫(kù)系統(tǒng)去管理,但邏輯上兩地的操作者要直接訪(fǎng)問(wèn)同一個(gè)數(shù)據(jù)庫(kù)才能有效實(shí)現(xiàn),有這樣一些問(wèn)題,如果需要建立“實(shí)時(shí)”的數(shù)據(jù)同步,就必須在兩地間建立實(shí)時(shí)的通訊連接,保持兩地的數(shù)據(jù)庫(kù)服務(wù)器在線(xiàn)運(yùn)行,網(wǎng)絡(luò)管理工作人員既要對(duì)服務(wù)器維護(hù)管理,又要對(duì)客戶(hù)端維護(hù)和管理,這需要高昂的投資和復(fù)雜的技術(shù)支持,維護(hù)成本很高,維護(hù)任務(wù)量大。 其次,傳統(tǒng)的C/S結(jié)構(gòu)的軟件需要針對(duì)不同的操作系統(tǒng)系統(tǒng)開(kāi)發(fā)不同版本的軟件,
37、由于產(chǎn)品的更新?lián)Q代十分快,代價(jià)高和低效率已經(jīng)不適應(yīng)工作需要。在JAVA這樣的跨平臺(tái)語(yǔ)言出現(xiàn)之后,B/S架構(gòu)更是猛烈沖擊C/S,并對(duì)其形成威脅和挑戰(zhàn)。 2.6 Web服務(wù)器 Tomcat是Apache 軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun 和其他一些公司及個(gè)人共同開(kāi)發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 規(guī)范。因?yàn)門(mén)omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深
38、受Java 愛(ài)好者的喜愛(ài)并得到了部分軟件開(kāi)發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。目前最新版本是6.0。 Tomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開(kāi)發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。 Tomcat是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪(fǎng)問(wèn)用戶(hù)不是很多的場(chǎng)合下被普遍使用,是開(kāi)發(fā)和調(diào)試JSP 程序的首選。對(duì)于一個(gè)初學(xué)者來(lái)說(shuō),可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)對(duì)HTML 頁(yè)面的訪(fǎng)問(wèn)請(qǐng)求。實(shí)際上To
39、mcat 部分是Apache 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。 這里的訣竅是,當(dāng)配置正確時(shí),Apache 為HTML頁(yè)面服務(wù),而Tomcat 實(shí)際上運(yùn)行JSP 頁(yè)面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁(yè)面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過(guò),Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。 3 系統(tǒng)總體設(shè)計(jì)分析 3.1 系統(tǒng)需求分析 隨著互聯(lián)網(wǎng)的爆炸性發(fā)展,人們?cè)絹?lái)
40、越習(xí)慣于利用網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)所需的服務(wù),網(wǎng)絡(luò)已深深影響到人們生活的各個(gè)方面。另外,傳統(tǒng)的圖書(shū)館不能滿(mǎn)足一部分現(xiàn)代人的需要,而電子閱覽室,由于其不受時(shí)間與空間的限制同時(shí)又具有傳統(tǒng)圖書(shū)館的大部分功能,能夠滿(mǎn)足各類(lèi)用戶(hù)的常規(guī)與特殊需求,而且其方便快捷,實(shí)現(xiàn)技術(shù)又比較成熟,因此受到當(dāng)代人的喜愛(ài)。 該系統(tǒng)主要分為兩部分:讀者部分和管理員部分。為了方便讀者查找自己感興趣的主題進(jìn)行閱讀,要將圖書(shū)按照內(nèi)容進(jìn)行分類(lèi)。讀者可以按照類(lèi)別進(jìn)行查找,逐級(jí)瀏覽、可以查看自己的信息。本系統(tǒng)還可對(duì)用戶(hù)的賬號(hào)和書(shū)目的閱讀權(quán)限進(jìn)行管理。管理員需要給用戶(hù)分配用戶(hù)名和密碼,及設(shè)定用戶(hù)的級(jí)別,還為用戶(hù)提供圖書(shū)的排行榜讓用戶(hù)能知道那些圖書(shū)受
41、到大家的歡迎。 3.2 系統(tǒng)實(shí)現(xiàn)的目標(biāo) 學(xué)校圖書(shū)管理系統(tǒng)的開(kāi)發(fā)主要要實(shí)現(xiàn)的目標(biāo)有以下幾個(gè)方面: (1)界面設(shè)計(jì)友好、美觀(guān)。 (2)數(shù)據(jù)存儲(chǔ)安全、可靠。 (3)信息分類(lèi)清晰、準(zhǔn)確。 (4)強(qiáng)大的查詢(xún)功能,保證數(shù)據(jù)查詢(xún)的靈活性。 (5)實(shí)現(xiàn)對(duì)圖書(shū)借閱和歸還過(guò)程的全程數(shù)據(jù)信息跟蹤。 (6)提供圖書(shū)借閱排行榜,為圖書(shū)管理員提供了真實(shí)的數(shù)據(jù)信息。 (7)提供靈活、方便的權(quán)限設(shè)置功能,使整個(gè)系統(tǒng)的管理分工明確。 (8)具有易維護(hù)性和易操作性。 3.3 系統(tǒng)功能模塊設(shè)計(jì) (1)系統(tǒng)設(shè)置模塊:添加刪除管理員、設(shè)置管理員的權(quán)限、說(shuō)明圖書(shū)存放書(shū)架信息添加刪除書(shū)架信息。 (2
42、)讀者管理模塊:添加刪除不同類(lèi)型的讀者及注明可借圖書(shū)的數(shù)量、添加刪除讀者的檔案。 (3)圖書(shū)管理模塊:添加刪除不同類(lèi)型的的圖書(shū)及注明圖書(shū)可借的天數(shù)庫(kù)存數(shù)量、添加刪除圖書(shū)的檔案。 (4)圖書(shū)借還模塊:可查詢(xún)讀者借閱和歸還圖書(shū)的信息及圖書(shū)的現(xiàn)有庫(kù)存量。 (5) 系統(tǒng)查詢(xún)模塊:可根據(jù)不同的條件(條形碼、書(shū)名、類(lèi)別、作者、書(shū)架、出版社)查詢(xún)讀者需要的圖書(shū)、讀者可根據(jù)不同的條件(圖書(shū)條形碼、圖書(shū)名稱(chēng)、讀者編號(hào)、讀者名字、到期時(shí)間)查詢(xún)自己借閱圖書(shū)信息。 (6)排行榜模塊:可以讓讀者知道圖書(shū)借閱的排行榜及讀者借閱的排行榜。 3.4 系統(tǒng)功能結(jié)構(gòu)圖 根據(jù)圖書(shū)管理系統(tǒng)的實(shí)際需求,可以將圖
43、書(shū)管理系統(tǒng)劃分為系統(tǒng)設(shè)置、圖書(shū)管理、讀者管理、圖書(shū)借還、系統(tǒng)查詢(xún)、排行榜6個(gè)部分各個(gè)部分的具體功能的系統(tǒng)功能結(jié)構(gòu)圖如圖3-1所示。 圖書(shū)管理系統(tǒng) 系統(tǒng)設(shè)置 管理員設(shè)置 書(shū)架設(shè)置 讀者管理 排行榜 圖書(shū)管理 圖書(shū)借還 系統(tǒng)查詢(xún) 讀者類(lèi)型管理 圖書(shū)借閱排行榜 讀者借閱排行榜 圖書(shū)借閱查詢(xún) 圖書(shū)檔案查詢(xún) 圖書(shū)歸還 圖書(shū)借閱 圖書(shū)檔案管理 圖書(shū)類(lèi)型管理 讀者檔案管理 圖3-1 系統(tǒng)功能結(jié)構(gòu)圖 (1)圖書(shū)借閱系統(tǒng)完成用戶(hù)的借書(shū)過(guò)程其數(shù)據(jù)流圖如圖3-2所示。 圖3-2 借閱系統(tǒng)的數(shù)據(jù)流圖 (2)還書(shū)系統(tǒng)完成圖
44、書(shū)的歸還過(guò)程其數(shù)據(jù)流圖如圖3-3所示。 圖3-3 歸還系統(tǒng)的數(shù)據(jù)流圖 (3)圖書(shū)檔案管理系統(tǒng)為用戶(hù)提供圖書(shū)檔案信息其數(shù)據(jù)流圖如圖3-4所示。 3-4 圖書(shū)檔案管理數(shù)據(jù)流圖 (4)讀者檔案系統(tǒng)用于記錄讀者的詳細(xì)信息其數(shù)據(jù)流圖如圖3-5所示。 圖3-5 讀者檔案管理數(shù)據(jù)流圖 3.5 系統(tǒng)流程圖 圖書(shū)管理系統(tǒng)的流程是用戶(hù)先輸入自己的帳號(hào)密碼及系統(tǒng)顯示的驗(yàn)證碼進(jìn)入系統(tǒng)如有一項(xiàng)不符合則不能進(jìn)入系統(tǒng),成功登陸系統(tǒng)后系統(tǒng)根劇登陸的帳號(hào)信息從數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行對(duì)比判斷是讀者還是管理員,如果是讀者則能進(jìn)行信息查詢(xún),及修改自己的相關(guān)信息,查詢(xún)到自己所需要的圖書(shū)就能通過(guò)管理
45、員進(jìn)行借閱圖書(shū)、歸還圖書(shū)也是通過(guò)管理員完成的。如果不是讀者而是管理員,那管理員可以進(jìn)行相關(guān)信息的查詢(xún)、添加刪除圖書(shū)及讀者的所有信息、設(shè)置相應(yīng)的權(quán)限、為圖書(shū)更新排行榜的信息、以及完成讀者的圖書(shū)借閱與歸還。圖書(shū)管理系統(tǒng)的系統(tǒng)流程圖如圖3-6所示。 登陸系統(tǒng) 是否登陸 判斷身份 管理員 讀者 圖書(shū)歸還 圖書(shū)借閱 信息查詢(xún) 排行榜信息 圖書(shū)信息 讀者信息 否 圖3-6 圖書(shū)管理系統(tǒng)的流程圖 4 數(shù)據(jù)總體結(jié)構(gòu)設(shè)計(jì) 4.1 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì) 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)是在需求分析的基礎(chǔ)上,設(shè)計(jì)出能夠滿(mǎn)足用戶(hù)需求的各種實(shí)體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計(jì)打下
46、基礎(chǔ)。這個(gè)階段不用考慮所采用的數(shù)據(jù)庫(kù)管理系統(tǒng)、操作系統(tǒng)類(lèi)型、機(jī)器類(lèi)型等問(wèn)題。這階段可用的工具很多。用的最多的是E-R圖(Entity-Relation,實(shí)體-關(guān)系圖),另外還有許多計(jì)算機(jī)輔助工具(Computer Aided Software Engineering, CASE)可以幫助進(jìn)行設(shè)計(jì)。本系統(tǒng)采用了E-R圖的方法進(jìn)行數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)。E-R圖是描述數(shù)據(jù)實(shí)體關(guān)系的一種直觀(guān)描述工具。這種圖中有: (1)實(shí)體:用方框表示,方框內(nèi)為實(shí)體的名稱(chēng)。 (2)實(shí)體的各種屬性:用橢圓表示,橢圓內(nèi)為屬性名稱(chēng)。使用線(xiàn)段將其和響應(yīng)的實(shí)體連接起來(lái)。 (3)實(shí)體之間的聯(lián)系:用菱形表示,菱形內(nèi)為聯(lián)
47、系的名稱(chēng)。 實(shí)體和實(shí)體之間的聯(lián)系較多,比較常見(jiàn)的聯(lián)系有l(wèi):1,l:N和M:N這三種。 4.2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì) 概念結(jié)構(gòu)是獨(dú)立于實(shí)際數(shù)據(jù)模型的信息結(jié)構(gòu),必須將其轉(zhuǎn)化為邏輯結(jié)構(gòu)后才能進(jìn)行數(shù)據(jù)庫(kù)應(yīng)用的設(shè)計(jì)。也就是要將概念上的結(jié)構(gòu)轉(zhuǎn)化為數(shù)據(jù)庫(kù)系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型。 第一種轉(zhuǎn)化是將實(shí)體轉(zhuǎn)化為關(guān)系表。這種轉(zhuǎn)化較簡(jiǎn)單,需要將實(shí)體的屬性定義為表的屬性即可。 第二種轉(zhuǎn)化是聯(lián)系的轉(zhuǎn)化。即將各個(gè)實(shí)體之間的聯(lián)系轉(zhuǎn)化為表格之間的關(guān)系,如外部鍵的定義。 在上面工作的基礎(chǔ)上歸納出人員管理數(shù)據(jù)庫(kù)表格的組成之間的聯(lián)系等等。該數(shù)據(jù)庫(kù)系統(tǒng)具有以下方面的特點(diǎn): 結(jié)構(gòu)合理,對(duì)一
48、個(gè)人員建立多條記錄。 所建立的數(shù)據(jù)冗余度小,獨(dú)立性強(qiáng)。 建檔、修改、查詢(xún)、統(tǒng)計(jì)快速而準(zhǔn)確。 保密性好、可靠性好。 圖書(shū)管理系統(tǒng)中要有圖書(shū),圖書(shū)是圖書(shū)管理系統(tǒng)中密不可分的部分,因此要?jiǎng)?chuàng)建一圖書(shū)信息實(shí)體,用來(lái)保存圖書(shū)的詳細(xì)信息。圖書(shū)信息實(shí)體屬性圖如圖4-1所 圖4-1 圖書(shū)信息實(shí)體屬圖 讀者是圖書(shū)管理系統(tǒng)重要組成部分,這里創(chuàng)建了一個(gè)讀者信息實(shí)體,用來(lái)存儲(chǔ)讀者的詳細(xì)信息。讀者信息實(shí)體E-R圖如圖4.2所示。 圖4-2 讀者信息實(shí)體屬性圖 圖書(shū)的借閱和歸還是圖書(shū)管理系統(tǒng)中的一
49、項(xiàng)重要的環(huán)節(jié),開(kāi)發(fā)圖書(shū)管理系統(tǒng)就是為了方便讀者對(duì)圖書(shū)的借閱和歸還,因此要建立一個(gè)圖書(shū)借還實(shí)體,用來(lái)保存讀者對(duì)圖書(shū)的借閱和歸還的詳細(xì)信息。圖書(shū)的借閱和歸還實(shí)體屬性圖如圖4-3所示。 圖4-3 讀者借還實(shí)體屬性圖 圖書(shū)管理系統(tǒng)為了增加系統(tǒng)的安全性,管理員只有在系統(tǒng)登陸模塊驗(yàn)證通過(guò)后才能進(jìn)入管理員的操作界面,因此套在數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)存放登錄用戶(hù)信息的管理員實(shí)體。管理員實(shí)體屬性圖如圖4-4所示。 圖4-4 管理員實(shí)體屬性圖 4.3 圖書(shū)管理系統(tǒng)的系統(tǒng)E-R圖 圖書(shū)管理系統(tǒng)的系統(tǒng)E-R圖如圖4-5所示。 讀者 圖書(shū) 管理員 管理 管理 借還 還書(shū)時(shí)間 借書(shū)時(shí)間 刪除
50、 類(lèi)型 條形碼 …… 修改 密碼 修改 名稱(chēng) 編號(hào) 類(lèi)型 …… 編號(hào) 添加 添加 刪除 圖4-5 圖書(shū)管理系統(tǒng)的系統(tǒng)E-R圖 4.4 數(shù)據(jù)表設(shè)計(jì) 本系統(tǒng)使用的數(shù)據(jù)庫(kù)管理系統(tǒng)為MySQL5.0。數(shù)據(jù)庫(kù)中的表有管理員信息表、圖書(shū)信息表、讀者信息表、管理員權(quán)限表、圖書(shū)借閱歸還表等。 圖書(shū)管理員基本信息表tb_admin,如表4-6所示。 字段名 數(shù)據(jù)類(lèi)型 長(zhǎng)度 主鍵 描述 id varchar 50 是 管理員編號(hào) name varchar 50 否 管理員名稱(chēng) pwd varchar 30 否 密碼
51、 表4-6 tb_admin(管理員)表 讀者詳細(xì)信息表tb_reader,如表4-7所示。 字段名 數(shù)據(jù)類(lèi)型 長(zhǎng)度 主鍵 描述 id varchar 30 是 讀者編號(hào) name varchar 50 否 讀者名稱(chēng) sex char 4 否 性別 type varchar 50 否 讀者類(lèi)型 birthday smalldatetime 4 否 生日 paperType varchar 20 否 證件類(lèi)型 paperNum varchar 30 否 證件號(hào)碼 tel var
52、char 20 否 電話(huà) email varchar 50 否 E-mail createDate smalldatetime 4 否 注冊(cè)日期 oper varchar 30 否 操作員 remark text 16 否 備注 borrownum int 4 否 借閱次數(shù) 表4-7 tb_reader(讀者信息)表 圖書(shū)詳細(xì)信息表tb_bookkifo,如表4-8所示。 字段名 數(shù)據(jù)類(lèi)型 長(zhǎng)度 主鍵 描述 Bookcode varchar 30 是 圖書(shū)條形碼 bookna
53、me varchar 50 否 圖書(shū)名稱(chēng) type varchar 50 否 圖書(shū)類(lèi)型 autor varchar 50 否 作者 translator varchar 50 否 譯者 pubname varchar 100 否 出版社 price money 8 否 價(jià)格 page int 4 否 頁(yè)碼 bcase varchar 50 否 書(shū)架 storage bigint 8 否 存儲(chǔ)數(shù)量 inTime smalldatetime 4 否 入館時(shí)間 oper varchar 30
54、否 操作員 borrownum int 4 否 被借次數(shù) 表4-8 tb_bookkifo(圖書(shū)信息)表 圖書(shū)借閱和歸還信息表tb_borrowandback,如表4-9所示。 字段名 數(shù)據(jù)類(lèi)型 長(zhǎng)度 主鍵 描述 id varchar 30 是 借書(shū)編號(hào) readid varchar 20 否 讀者編號(hào) bookcode varchar 30 否 圖書(shū)條形碼 borrowTime smalldatetime 4 否 借書(shū)時(shí)間 ygbackTime smalldatetime 4 否 應(yīng)該還書(shū)時(shí)間 sjbackTim
55、e smalldatetime 4 否 實(shí)際還書(shū)時(shí)間 borrowoper varchar 30 否 借書(shū)操作 backoper varchar 30 否 還書(shū)操作 isback bit 1 否 是否歸還 表4-9 tb_borrowandback(圖書(shū)借閱和歸還信息)表 權(quán)限信息表tb_purview,如表4-10所示。 字段名 數(shù)據(jù)類(lèi)型 長(zhǎng)度 主鍵 描述 id varchar 50 是 用戶(hù)編號(hào) syset bit 1 否 系統(tǒng)設(shè)置 readset bit 1 否 讀者管理 bookset bi
56、t 1 否 圖書(shū)管理 borrowback bit 1 否 圖書(shū)借還 syaquery bit 1 否 系統(tǒng)查詢(xún) 表4-10 tb_purview(權(quán)限信息)表 5 圖書(shū)管理系統(tǒng)詳細(xì)設(shè)計(jì) 5.1 系統(tǒng)流程分析 根據(jù)開(kāi)發(fā)圖書(shū)管理系統(tǒng)的需求分析,本系統(tǒng)設(shè)計(jì)了三種用戶(hù),分別為系統(tǒng)管理員、教師和學(xué)生。 系統(tǒng)要求有系統(tǒng)管理員用戶(hù),我們?cè)O(shè)定系統(tǒng)管理員,當(dāng)系統(tǒng)管理員使用帳戶(hù)登錄后,需要查看有關(guān)圖書(shū)的一系列的信息,管理員可以通過(guò)系統(tǒng)導(dǎo)航菜單進(jìn)入讀者管理界面、圖書(shū)管理界面、圖書(shū)借還界面、系統(tǒng)查詢(xún)界面、排行榜界面,在讀者界面中,管理員添加和修改學(xué)生或教師信息、用戶(hù)可以查看
57、自己信息,在圖書(shū)管理界面管理員可以添加和修改圖書(shū)信息、用戶(hù)可查看圖書(shū),在圖書(shū)借還界面完成讀者借書(shū)還書(shū)的操作,系統(tǒng)查詢(xún)界面管理員可以查看借出去的圖書(shū)信息及庫(kù)存的信息、用戶(hù)可以查找自己的所需的圖書(shū),排行榜界面主要是可以讓用戶(hù)知道哪些圖書(shū)受到讀者的喜愛(ài)。讀者(老師和學(xué)生)使用讀者帳號(hào)登陸系統(tǒng)后,可以查詢(xún)自己所需要的圖書(shū)的信息、也可以查詢(xún)自己個(gè)人的基本信息及圖書(shū)的借還信息,還能查看排行榜的信息。讀者的借書(shū)和還書(shū)過(guò)程是通過(guò)管理員完成的。 5.2 主要模塊的運(yùn)行 5.2.1 登陸界面 當(dāng)用戶(hù)輸入用戶(hù)名、密碼,系統(tǒng)自動(dòng)將輸入的信息和相關(guān)數(shù)據(jù)表中的內(nèi)容進(jìn)行比較,如果該用戶(hù)輸入的內(nèi)容和數(shù)據(jù)表中的內(nèi)容相
58、符,則通過(guò)驗(yàn)證,此次登錄成功;否則登錄失敗。比較的過(guò)程是由瀏覽器將指令,數(shù)據(jù)發(fā)送到Web服務(wù)器,Web服務(wù)器通過(guò)對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)將結(jié)果返回到瀏覽器,從而端顯示成功的消息,用戶(hù)只有成功登陸系統(tǒng)后才能進(jìn)行一系列的操作,如下圖5-1所示。 5-1 圖書(shū)管理系統(tǒng)登陸界面 5.2.2 圖書(shū)信息管理模塊 圖書(shū)信息管理模塊主要分為查看圖書(shū)信息頁(yè)面和添加修改圖書(shū)信息頁(yè)面,用戶(hù)可以在查看圖書(shū)信息頁(yè)面查看圖書(shū)的基本信息,管理員也可以看這些信息,并且可以通過(guò)單擊“添加圖書(shū)信息”這個(gè)超級(jí)鏈接或集合列表中的“詳情”超級(jí)鏈接轉(zhuǎn)到添加或刪除圖書(shū)信息界面,并在該頁(yè)中添家或修改圖書(shū)信息,如圖5
59、-2與5-3所示。 圖5-2 查看圖書(shū)信息界面 5-3 添家或修改圖書(shū)信息界面 圖書(shū)信息管理模塊的實(shí)現(xiàn),主要是使用了Hibernate框架操作數(shù)據(jù)庫(kù)技術(shù)。 Hibernate,通過(guò)對(duì)jdbc進(jìn)行封裝,對(duì) java類(lèi)和關(guān)系數(shù)據(jù)庫(kù)進(jìn)行mapping,實(shí)現(xiàn)了對(duì)關(guān)系數(shù)據(jù)庫(kù)的面向?qū)ο蠓绞降牟僮鳎淖兞藗鹘y(tǒng)的jdbc + sql操作數(shù)據(jù)的方式,從而使開(kāi)發(fā)人員可以話(huà)更多精力進(jìn)行對(duì)象方面的開(kāi)發(fā)。其優(yōu)點(diǎn)并不只是簡(jiǎn)化了數(shù)據(jù)庫(kù)操作,更有價(jià)值的是對(duì)不同的數(shù)據(jù)庫(kù)提供了統(tǒng)一操作的接口,使應(yīng)用程序的跨數(shù)據(jù)庫(kù)開(kāi)發(fā)成為可能。 5.2.3 圖書(shū)借還信息模塊 圖書(shū)借還管理模塊主要分為圖書(shū)借閱頁(yè)面和圖書(shū)
60、歸還頁(yè)面,用戶(hù)可以在通過(guò)這個(gè)模塊查看圖書(shū)的借閱和歸還信息。管理員可以在圖書(shū)通過(guò)這個(gè)模塊來(lái)完成讀者借和還書(shū)的操作,如圖5-4與5-5所示。 圖5-4 圖書(shū)的借閱管理 圖5-5 圖書(shū)歸還管理 5.3 系統(tǒng)開(kāi)發(fā)的遇到的相關(guān)問(wèn)題及解決 5.3.1 圖書(shū)管理系統(tǒng)索引 圖書(shū)管理系統(tǒng)開(kāi)發(fā)中存在大量的數(shù)據(jù)和信息檢索,怎樣更好的檢索數(shù)據(jù)和信息操作是保證檢索速度的提高和數(shù)據(jù)的分頁(yè)顯示,主要考慮了以下幾個(gè)方面: (1)設(shè)計(jì)邏輯結(jié)構(gòu)時(shí)充分考慮冗余量和可處理性?xún)煞矫娴囊?,在接受冗余量的提下,盡量減少表的連接操作。 (2)關(guān)系的大小對(duì)查詢(xún)的影響也是很大的,因此為了提高數(shù)據(jù)庫(kù)的查詢(xún)速度,減小系
61、的大小和數(shù)據(jù)量也是必要的。 (3)建立合理的索引結(jié)構(gòu)。索引相當(dāng)于一個(gè)映射機(jī)構(gòu),將鍵值轉(zhuǎn)換成相對(duì)應(yīng)的 記錄地址,形成索引文件。 索引設(shè)計(jì)是數(shù)據(jù)庫(kù)物理設(shè)計(jì)的基本問(wèn)題,也是較困難的問(wèn)題,建立索引可以極大地提高系統(tǒng)的查詢(xún)速度,但是同時(shí)做Insert、Update、Delete操作時(shí)會(huì)降低速度,因?yàn)樽鲞@些操作的同時(shí)需要更新索引,所以不能對(duì)數(shù)據(jù)庫(kù)中所有的表都建立索引。比如滿(mǎn)足下列條件之一的不易建立索引:不出現(xiàn)或很少出現(xiàn)的屬性或表、屬性分布嚴(yán)重不均的屬性、經(jīng)常更新的屬性或表、過(guò)長(zhǎng)的屬性、太小的表等。 滿(mǎn)足下列條件之一的可以考慮建立索引:主鍵和外鍵都建立索引、對(duì)于以讀為主或只讀的表,只要需要,且存儲(chǔ)空
62、間允許,可以減少連接開(kāi)銷(xiāo)、對(duì)于等值查詢(xún)(即查詢(xún)條件以等號(hào)為比較符),最好建立索引、對(duì)查詢(xún)范圍(即查詢(xún)條件>,<,≤,≥為比較符),最好建立索引、有些查詢(xún)可以由檢索直接得到結(jié)果,不必訪(fǎng)問(wèn)數(shù)據(jù)塊。 根據(jù)實(shí)際需要,讀者信息表,圖書(shū)信息表,圖書(shū)借還信息表,權(quán)限信息,管理員信息表等都建立索引,合理使用緩沖區(qū)。 5.3.2 如何驗(yàn)證輸入的字符串 在圖書(shū)管理系統(tǒng)的開(kāi)發(fā)過(guò)程中,需要對(duì)一些輸入的字符串進(jìn)行驗(yàn)證,例如金額、電話(huà)號(hào)碼、E-mail等,由于許多模塊都需要用到這些驗(yàn)證,因此可以將其寫(xiě)入到一個(gè)公共JS腳本中然后在其他的頁(yè)面中直接調(diào)用即可。JS中對(duì)字符串進(jìn)行驗(yàn)證時(shí),十分的方便快捷,減少服務(wù)器與客戶(hù)端
63、交互的過(guò)程,在客戶(hù)端輕松的解決,要使用正則表達(dá)式驗(yàn)證輸入的字符串,如驗(yàn)證輸入的字符串是否為E-mail的地址格式的實(shí)現(xiàn)方法。代碼如下: 驗(yàn)證輸入為Email if(formname.email.value!=formname.email.value.match(/^\w +[@]\w +[.][\w.] +$/)) { alert("您的電子郵件格式錯(cuò)誤!"); formname.email.focus(); return false; } 5.3.3 自動(dòng)計(jì)算圖書(shū)歸還日期 在圖書(shū)管理系統(tǒng)運(yùn)行中會(huì)常常遇到這樣的問(wèn)題:在借閱圖書(shū)時(shí),需要自動(dòng)計(jì)算圖書(shū)的歸還日期,而
64、這個(gè)日期又不是固定不變的,它是需要根據(jù)系統(tǒng)日期和數(shù)據(jù)表中保存的各類(lèi)圖書(shū)的最多借閱天數(shù)來(lái)計(jì)算的,即圖書(shū)歸還日期=“系統(tǒng)日期”+“最多借閱天數(shù)”。因此本系統(tǒng)是這樣解決問(wèn)題的:首先獲取系統(tǒng)時(shí)間,然后從數(shù)據(jù)表中查詢(xún)出該類(lèi)圖書(shū)最多借閱天數(shù),最后計(jì)算歸還日期。計(jì)算方法如下: 首先取出所借圖書(shū)的最多借閱天數(shù),然后根據(jù)圖書(shū)的最多借閱天數(shù),使用getMaxDay()方法返回一個(gè)int值,最后使用當(dāng)前時(shí)間與先返回的Timespan時(shí)間間隔相加。 自動(dòng)計(jì)算圖書(shū)歸還日期的關(guān)鍵代碼如下: //獲得當(dāng)前日期 SimpleDateFormat time=new SimpleDateFormat("yyyy-MM-
65、dd"); Calendar c = Calendar.getInstance(); //獲得最多借閱天數(shù) int days = getMaxDay(); //增加圖書(shū)借閱天數(shù) c.add(Calendar.DAY_OF_MONTH, days); //獲得圖書(shū)歸還日期 String borrowandbackmanage = time.format(c.getTime()); 5.3.4 系統(tǒng)登陸驗(yàn)證碼的實(shí)現(xiàn) 在學(xué)校圖書(shū)管理系統(tǒng)的開(kāi)發(fā)過(guò)程中,怎么樣防止某些人利用某些惡意的軟件對(duì)圖書(shū)管理系統(tǒng)進(jìn)行惡意的登陸來(lái)攻擊系統(tǒng),增加圖書(shū)管理系統(tǒng)的安全性是一個(gè)重要的問(wèn)題。在圖
66、書(shū)管理系統(tǒng)的登陸模塊中加入一個(gè)驗(yàn)證碼的功能,即用戶(hù)除了要輸入帳號(hào)和密碼還要輸入系統(tǒng)為用戶(hù)提供的驗(yàn)證碼。驗(yàn)證碼可以很好的解決了怎樣防止惡意用戶(hù)利用惡意軟件對(duì)系統(tǒng)頁(yè)面的瘋狂提交、以及暴力破解密碼進(jìn)行登陸的問(wèn)題。因此,設(shè)置一個(gè)隨機(jī)函數(shù)在數(shù)字0~9和英文字母A~Z中隨機(jī)抽取四個(gè),在用戶(hù)打開(kāi)登陸界面的時(shí)候,系統(tǒng)通過(guò)隨機(jī)生成器隨機(jī)生成4個(gè)數(shù)字或字母或數(shù)字加字母存放在緩存內(nèi),并出現(xiàn)在界面上順序是隨機(jī)的,當(dāng)用戶(hù)登陸時(shí)輸入的驗(yàn)證碼要與緩存中的進(jìn)行對(duì)比符合就進(jìn)入,不符合就不能登陸。系統(tǒng)在提供驗(yàn)證碼時(shí)候要加入一些干擾的條件的,不過(guò)這些人的肉眼是很容易分辨,但機(jī)器人程序不能分辨,很好的防止某人利用機(jī)器人程序?qū)ο到y(tǒng)的惡意操作增加了系統(tǒng)的安全性。驗(yàn)證碼實(shí)現(xiàn)的關(guān)鍵代碼如下: 展開(kāi)閱讀全文
- 溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 雅馬哈ts-x_ts-s使用說(shuō)明課件
- 多元函數(shù)的微積分
- 商業(yè)保險(xiǎn)與社會(huì)保險(xiǎn)的區(qū)別
- HL-X6280終端培訓(xùn)手冊(cè)
- 汽車(chē)電路原理
- 通信網(wǎng)絡(luò)演進(jìn)及LTE關(guān)鍵技術(shù)教材
- 借助展業(yè)夾提升平安福簽單率廣東葉華東終稿[1]課件
- (精品)珠江國(guó)際城代管人員2
- 零售-7-11經(jīng)營(yíng)模式分析
- 電子病歷簡(jiǎn)介及門(mén)診醫(yī)生工作站[1]課件
- 食管癌術(shù)后早期營(yíng)養(yǎng)支持相關(guān)研究
- LHQ電纜層保護(hù)器相關(guān)型號(hào)列表參數(shù)
- 大腦前動(dòng)脈動(dòng)脈瘤用
- 甲真菌病各藥物特點(diǎn)教學(xué)課件
- 滑輪組機(jī)械效率