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