版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 JIU JIANG UNIVERSITY畢 業(yè) 論 文題 目 圖書管理系統(tǒng) 英文題目(tm) Library management system 院 系 信息科學(xué)(xn x k xu)與技術(shù)學(xué)院 專 業(yè) 計(jì)算機(jī)應(yīng)用(yngyng)技術(shù) 姓 名 劉志輝 班級(jí)學(xué)號(hào) B1311 指導(dǎo)教師 代君 二一五年十一月目 錄TOC o 1-3 h u HYPERLINK l _Toc2692 一、概述(i sh) HYPERLINK l _Toc23344 1.1 系統(tǒng)(xtng)概述( 一、概述(i sh)1.1系統(tǒng)(xtng)概述本設(shè)計(jì)是一個(gè)圖書信息管理系統(tǒng)的后臺(tái)(huti)數(shù)據(jù)庫(kù)的設(shè)計(jì)。由于時(shí)間和精力
2、的限制本設(shè)計(jì)僅實(shí)現(xiàn)了圖書管理系統(tǒng)基本功能的設(shè)計(jì)與實(shí)現(xiàn)。通過本次設(shè)計(jì),達(dá)到了了解數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開發(fā)過程,熟悉了系統(tǒng)分析和設(shè)計(jì)的過程和方法的目的。在實(shí)踐中掌握了知識(shí),達(dá)到了學(xué)以致用的目標(biāo)。本次設(shè)計(jì)首先通過查閱資料對(duì)圖書領(lǐng)域的基本知識(shí)有一定的認(rèn)識(shí),了解用戶各個(gè)方面的需求,包括現(xiàn)有的以及將來的可能增加的需求。然后按照數(shù)據(jù)庫(kù)設(shè)計(jì)的六個(gè)階段進(jìn)行了設(shè)計(jì)與實(shí)現(xiàn):需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)實(shí)施、數(shù)據(jù)庫(kù)的運(yùn)行和維護(hù)。數(shù)據(jù)庫(kù)在各種信息的提供、保存、更新和查詢方面都要求滿足各種信息的輸出和輸入,符合用戶的基本需求。應(yīng)用 MYSQL建立數(shù)據(jù)庫(kù),選用Java作為開發(fā)工具,完成了對(duì)圖書管理
3、系統(tǒng)的客戶端與服務(wù)端的設(shè)計(jì)。本文從圖書管理系統(tǒng)的意義和發(fā)展入手,隨后進(jìn)行了系統(tǒng)需求分析,接著進(jìn)行了系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì),最后給出系統(tǒng)的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)。1.2數(shù)據(jù)庫(kù)概述從20世紀(jì)50年代中期開始,計(jì)算機(jī)的應(yīng)用由科學(xué)研究部門逐步擴(kuò)展至企業(yè)、行政部門。至60年代,數(shù)據(jù)處理成為計(jì)算機(jī)的主要應(yīng)用。數(shù)據(jù)庫(kù)技術(shù)作為數(shù)據(jù)管理技術(shù),是計(jì)算機(jī)軟件領(lǐng)域的一個(gè)重要分支,產(chǎn)生于60年代末。現(xiàn)已形成相當(dāng)規(guī)模的理論體系和實(shí)用技術(shù)。數(shù)據(jù)庫(kù)(Database)DB是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。數(shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagermentSystem)DBMS是位于用戶和操作系統(tǒng)之間的一層數(shù)據(jù)(shj)管理軟件,
4、為用戶或應(yīng)用程序提供訪問DB的方法,包括DB的建立、查詢、更新及各種數(shù)據(jù)控制。數(shù)據(jù)庫(kù)系統(tǒng)(DatabaseSystem)DBS是實(shí)現(xiàn)有組織地、動(dòng)態(tài)地存儲(chǔ)大量關(guān)聯(lián)數(shù)據(jù),方便(fngbin)多用戶訪問的計(jì)算機(jī)軟、硬件和數(shù)據(jù)資源組成的系統(tǒng),即采用了數(shù)據(jù)庫(kù)技術(shù)的計(jì)算機(jī)系統(tǒng)。數(shù)據(jù)庫(kù)技術(shù):是一門研究數(shù)據(jù)庫(kù)的結(jié)構(gòu)(jigu)、存儲(chǔ)、管理和使用的軟件學(xué)科。1.3Eclipse概述Eclipse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Deve
5、lopment Tools,JDT)。 雖然大多數(shù)用戶很樂于將 Eclipse 當(dāng)作 Java IDE 來使用,但 Eclipse 的目標(biāo)不僅限于此。Eclipse 還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展 Eclipse 的軟件開發(fā)人員,因?yàn)樗试S他們構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場(chǎng)所。這種平等和一致性并不僅限于 Java 開發(fā)工具。盡管 Eclip
6、se 是使用 Java 語(yǔ)言開發(fā)的,但它的用途并不限于 Java 語(yǔ)言;例如,支持諸如 C/C+、COBOL 和 Eiffel 等編程語(yǔ)言的插件已經(jīng)可用,或預(yù)計(jì)會(huì)推出。Eclipse 框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipse Enterprise Workbench ,簡(jiǎn)稱MyEclipse)是對(duì)Eclipse IDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和J2EE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML
7、, Struts, JSF, CSS, Javascript, SQL, Hibernate。1.4圖書(tsh)管理系統(tǒng)簡(jiǎn)介圖書管理系統(tǒng)就是(jish)我們常說的MIS(ManagementInformationSystem),在強(qiáng)調(diào)管理,強(qiáng)調(diào)信息的現(xiàn)代社會(huì)中它變得越來越普及。MIS是一門新的學(xué)科,它跨越了若干個(gè)領(lǐng)域,比如管理科學(xué)、系統(tǒng)科學(xué),運(yùn)籌學(xué)、統(tǒng)計(jì)學(xué)以及計(jì)算機(jī)科學(xué)。在這些學(xué)科的基礎(chǔ)上,形成信息收集和加工的方法,從而(cng r)形成一個(gè)縱橫交織的系統(tǒng)。管理信息系統(tǒng)是現(xiàn)代信息管理工作不可缺少的一部分,是適應(yīng)現(xiàn)代高圖書信息管理尺度的要求、推動(dòng)信息管理走向科學(xué)化、規(guī)范化的必要條件。只有信息管
8、理規(guī)范了,才能給人們提供更好的生活環(huán)境及便利的生活空間。信息是管理上的一項(xiàng)極為重要的資源,管理工作的成敗取決于能否做出有效的決策,而決策的正確程度則在很大程度上取決于信息的質(zhì)量。在21世紀(jì),人類將步入知識(shí)經(jīng)濟(jì)時(shí)代,知識(shí)經(jīng)濟(jì)時(shí)代是圖書發(fā)展日新月異和知識(shí)、信息呈爆炸膨脹的時(shí)代。有所謂信息威脅之說,這是指人類面臨的要處理的信息量大到難以處理的地步,以至造成混亂的結(jié)果。計(jì)算機(jī)的出現(xiàn)解決了這個(gè)問題,由于計(jì)算機(jī)迅速、準(zhǔn)確為信息收集、加工、使用、查詢提供可能。隨著以計(jì)算機(jī)技術(shù)、通信技術(shù)、網(wǎng)絡(luò)技術(shù)為代表的現(xiàn)代信息技術(shù)的飛躍發(fā)展,人類正在從工業(yè)時(shí)代向信息時(shí)代邁進(jìn),人們?cè)絹碓街匾曅畔①Y源的開發(fā)和利用,“信息化”已
9、成為一個(gè)國(guó)家經(jīng)濟(jì)和社會(huì)發(fā)展的關(guān)鍵環(huán)節(jié),信息化水平的高低已成為衡量一個(gè)國(guó)家現(xiàn)代化水平和綜合國(guó)力的重要標(biāo)志。管理信息系統(tǒng)是一個(gè)由人和計(jì)算機(jī)等組成的,能進(jìn)行管理信息的收集、傳遞、加工、保存、維護(hù)和使用的系統(tǒng),它能實(shí)測(cè)國(guó)民經(jīng)濟(jì)和企業(yè)的行為、幫助實(shí)現(xiàn)其規(guī)劃目標(biāo)。管理信息系統(tǒng)功能包括:信息收集、信息存儲(chǔ)、問題處理、對(duì)話及信息輸出、信息管理機(jī)構(gòu)。1.5圖書管理系統(tǒng)的發(fā)展(fzhn)現(xiàn)狀現(xiàn)代社會(huì)、社會(huì)化趨勢(shì)的擴(kuò)大和社會(huì)產(chǎn)品需求使企業(yè)在生產(chǎn)經(jīng)營(yíng)活動(dòng)中涉及的內(nèi)外部信息積聚膨脹,隨著科學(xué)技術(shù)突飛猛進(jìn)和生產(chǎn)迅速發(fā)展,使人類知識(shí)量增長(zhǎng)速度不斷加快,信息量的增加,外部環(huán)境變化的變快,人工已無法勝任。如何收集足夠的信息資源
10、,強(qiáng)有力的信息并加以利用,積極的開發(fā)和及時(shí)利用信息爆炸有效的信息資源,已成為現(xiàn)代社會(huì)的難題。計(jì)算機(jī)的出現(xiàn)解決了這個(gè)(zh ge)問題,由于計(jì)算機(jī)迅速、準(zhǔn)確為信息收集、加工、使用、查詢提供可能。計(jì)算機(jī)技術(shù)與通信技術(shù)結(jié)合極大的促進(jìn)現(xiàn)代信息技術(shù)的發(fā)展,各國(guó)加快信息進(jìn)程,國(guó)際社會(huì)建設(shè)信息高速公路的熱潮和中國(guó)工人“金”字號(hào)工程為代表的國(guó)家信息工程項(xiàng)目(xingm)的開展,使中國(guó)的企業(yè)信息化面臨新的形勢(shì)。電子計(jì)算機(jī)適應(yīng)現(xiàn)代社會(huì)管理信息量迅速增長(zhǎng),信息壽命短,要求及時(shí)轉(zhuǎn)換的問題。信息系統(tǒng)由電子數(shù)據(jù)處理,信息報(bào)告系統(tǒng),決策支持系統(tǒng)進(jìn)一步發(fā)展到專家系統(tǒng)及支持領(lǐng)導(dǎo)層的決策執(zhí)行信息程序,在競(jìng)爭(zhēng)中支持戰(zhàn)略決策的戰(zhàn)略信
11、息系統(tǒng)。當(dāng)今社會(huì)現(xiàn)代信息技術(shù)廣泛迅速的滲透到社會(huì)生活的各領(lǐng)域但目前在管理信息系統(tǒng)應(yīng)用還很不完善,屬于起步階段。計(jì)算機(jī)對(duì)管理工作的支持,不僅是數(shù)據(jù)處理、而且是輔助決策的工具,能夠從海量的信息中收集、整理,分析提供給管理者、決策有關(guān)的信息,相關(guān)的決策分析,甚至可和管理者交互對(duì)話,生成決策。目前各個(gè)行業(yè)的計(jì)算機(jī)處理信息管理,很大一部分仍停留在單項(xiàng)業(yè)務(wù)理,處在電子數(shù)據(jù)處理階段,各單位由事務(wù)處理到系統(tǒng)處理轉(zhuǎn)向支持系統(tǒng)還建立起真正的具有預(yù)測(cè)控制和支持決策功能的管理信息系統(tǒng)。雖然信息系統(tǒng)已有一定發(fā)展,在業(yè)務(wù)處理過程控制辦公自動(dòng)化方面已有長(zhǎng)足進(jìn)步,但很不完善。要充分利用計(jì)算機(jī)處理信息,必須從目前情況入手,著眼
12、于未來,開發(fā)適合本單位、行業(yè)的小型管理系統(tǒng),甚至是其中一步分,如工資管理系統(tǒng),然后逐步完善,不斷擴(kuò)充。管理信息系統(tǒng)的特點(diǎn)之一就是數(shù)據(jù)集中統(tǒng)一,采用數(shù)據(jù)庫(kù)。利用數(shù)據(jù)庫(kù)技術(shù)可解決數(shù)據(jù)共享問題。數(shù)據(jù)庫(kù)用一定數(shù)據(jù)模型組織數(shù)據(jù),使數(shù)據(jù)面向系統(tǒng),程序獨(dú)立于數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)獨(dú)立性,減少數(shù)據(jù)冗余和不一致性,且易編程、擴(kuò)充、移走。尤其20世紀(jì)70年代后期產(chǎn)生的分布式、面對(duì)對(duì)象數(shù)據(jù)庫(kù),使數(shù)據(jù)和數(shù)據(jù)操作方法作為對(duì)象由數(shù)據(jù)庫(kù)管理,系統(tǒng)更好用,減少出問題的可能性.其屬性繼承性可在對(duì)象中共享數(shù)據(jù)和操作,極大的方便了用戶。總而言之管理信息系統(tǒng)是集科學(xué)化、計(jì)算機(jī)及系統(tǒng)方法為一體的綜合性邊緣性學(xué)科。二、數(shù)據(jù)庫(kù)概述(i sh)2.
13、1數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)(shj)計(jì)算機(jī)信息系統(tǒng)以數(shù)據(jù)庫(kù)為核心,在數(shù)據(jù)庫(kù)管理系統(tǒng)的支持下,進(jìn)行(jnxng)信息的收集、整理、存儲(chǔ)、檢索、更新、加工、統(tǒng)計(jì)和傳播等操作。對(duì)于數(shù)據(jù)庫(kù)應(yīng)用開發(fā)人員來說,為使現(xiàn)實(shí)世界的信息流計(jì)算機(jī)話,并對(duì)計(jì)算機(jī)話的信息進(jìn)行各種操作,就是如何利用數(shù)據(jù)庫(kù)管理系統(tǒng)、系統(tǒng)軟件和相關(guān)硬件系統(tǒng),將用戶的要求轉(zhuǎn)化成有效的數(shù)據(jù)結(jié)構(gòu),并使數(shù)據(jù)庫(kù)結(jié)構(gòu)易于實(shí)現(xiàn)用戶新的要求的過程。確切的說,數(shù)據(jù)庫(kù)設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,提供一個(gè)確定最優(yōu)數(shù)據(jù)模型與處理模式的邏輯設(shè)計(jì),以及一個(gè)確定數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu)與存取方法的物理設(shè)計(jì),建立起既能反映現(xiàn)實(shí)世界信息和信息聯(lián)系,滿足用戶數(shù)據(jù)要求和加工要求,有能被某個(gè)數(shù)據(jù)
14、庫(kù)管理系統(tǒng)所接受,同時(shí)能實(shí)現(xiàn)系統(tǒng)目標(biāo),并有效存取數(shù)據(jù)的數(shù)據(jù)庫(kù)。2.2數(shù)據(jù)庫(kù)設(shè)計(jì)周期根據(jù)軟件工程的思想,數(shù)據(jù)庫(kù)設(shè)計(jì)的周期可以劃分為六個(gè)階段:(1)規(guī)劃階段確定開發(fā)的總目標(biāo),給出計(jì)劃開發(fā)的軟件系統(tǒng)的功能、性能、可靠性以及接等方面的設(shè)想。需求分析階段認(rèn)真細(xì)致地了解用戶對(duì)數(shù)據(jù)的加工要求,確定系統(tǒng)的功能與邊界。本階段的最終結(jié)果,提供一個(gè)可作為設(shè)計(jì)基礎(chǔ)的系統(tǒng)說明書,包括對(duì)軟硬件環(huán)境的要求和一整套完善的數(shù)據(jù)流程圖。設(shè)計(jì)階段把需求分析階段所確定的功能細(xì)化,主要工作是概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理(wl)設(shè)計(jì)階段,然后,對(duì)每個(gè)階段內(nèi)部設(shè)計(jì)詳細(xì)的流程。程序編制階段(jidun)以一種或幾種(j zhn)特定的程
15、序設(shè)計(jì)語(yǔ)言表達(dá)上一階段確定的各模塊控制流程。程序編制時(shí)應(yīng)遵循結(jié)構(gòu)化程序設(shè)計(jì)方法。調(diào)試階段對(duì)已編好的程序進(jìn)行單元調(diào)試(分調(diào)),整體調(diào)試(聯(lián)調(diào))和系統(tǒng)測(cè)試(驗(yàn)收)。運(yùn)行和維護(hù)階段這是整個(gè)設(shè)計(jì)周期最長(zhǎng)的階段,其工作重點(diǎn)是收集和記錄系統(tǒng)實(shí)際運(yùn)行的數(shù)據(jù)。在運(yùn)行中,必須保持?jǐn)?shù)據(jù)庫(kù)的完整性,必須有效的處理數(shù)據(jù)故障和進(jìn)行數(shù)據(jù)庫(kù)恢復(fù)。同時(shí)解決開發(fā)過程的遺留問題,改正錯(cuò)誤進(jìn)行功能完善。2.3數(shù)據(jù)庫(kù)開發(fā)工具簡(jiǎn)介(MYSQL)MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫(kù)系統(tǒng)使用最常用的數(shù)據(jù)庫(kù)管理語(yǔ)言-結(jié)構(gòu)化查詢語(yǔ)言(SQL)進(jìn)行數(shù)據(jù)庫(kù)管理。由于MySQL是開放源代碼的,因此任何人都
16、可以在General Public License的許可下下載并根據(jù)個(gè)性化的需要對(duì)其進(jìn)行修改。MySQL因?yàn)槠渌俣?、可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL是管理內(nèi)容最好的選擇。MySQL這個(gè)名字,起源不是很明確。一個(gè)比較有影響的說法是,基本指南和大量的庫(kù)和工具帶有前綴“my”已經(jīng)有10年以上,而且不管怎樣,MySQL AB創(chuàng)始人之一的Monty Widenius的女兒也叫My。這兩個(gè)到底是哪一個(gè)給出了MySQL這個(gè)名字至今依然是個(gè)迷,包括開發(fā)者在內(nèi)也不知道。MySQL的海豚標(biāo)志的名字叫“sakila”,它是由MySQL AB的創(chuàng)始人從用戶在“海豚命名”的
17、競(jìng)賽中建議的大量的名字表中選出的。獲勝的名字是由來自非洲斯威士蘭的開源軟件開發(fā)者Ambrose Twebaze提供。根據(jù)Ambrose所說,Sakila來自一種叫SiSwati的斯威士蘭方言,也是在Ambrose的家鄉(xiāng)烏干達(dá)附近的坦桑尼亞的Arusha的一個(gè)小鎮(zhèn)的名字。MySQL,雖然功能未必很強(qiáng)大,但因?yàn)樗拈_源(ki yun)、廣泛傳播,導(dǎo)致很多人都了解到這個(gè)數(shù)據(jù)庫(kù)。它的歷史也富有傳奇性。2.3數(shù)據(jù)庫(kù)表用戶(yngh)表:字段名類型長(zhǎng)度idInt10UserNamevarchar30Passwordvarchar30Phonevarchar30Addressvarchar100Book表:
18、字段名類型長(zhǎng)度Barcodevarchar20BookNamevarchar20BookClassIdint11PriceFloat0CountInt11PublishDateDatetime0BookImageVarchar50類別(libi)表:字段名類型長(zhǎng)度BookClassIdInt11BookClassNameVarchar20三、系統(tǒng)分析對(duì)于(duy)一個(gè)圖書管理系統(tǒng)來說,圖書的查詢及數(shù)據(jù)的維護(hù)管理是其中的核心環(huán)節(jié)。在現(xiàn)行圖書借閱管理工作中,存在幾個(gè)共有(n yu)的問題:1、圖書(tsh)種類過多,數(shù)據(jù)龐大這是幾乎所有圖書館會(huì)遇到的問題,各種不同種類的圖書為這些圖書進(jìn)入圖書庫(kù)的添
19、加與維護(hù)增加了很大的難題,對(duì)這些數(shù)據(jù)的反復(fù)輸入,往往造成龐大的工作量和較低下的效率。2、查詢圖書困難每天的借閱情況,讀者借閱的到期、還書情況,各項(xiàng)數(shù)據(jù)的匯總和統(tǒng)計(jì)情況必須由管理員統(tǒng)計(jì)上報(bào),圖書庫(kù)總管理員才能考慮對(duì)圖書館的硬件如某類書的需求數(shù)量進(jìn)行改變以向上級(jí)部門申報(bào)購(gòu)入新圖書等情況。3、圖書毀壞及圖書破損在借閱過程中難免此類現(xiàn)象的發(fā)生,如何及時(shí)發(fā)現(xiàn)及事后對(duì)毀壞圖書進(jìn)行淘汰和更新也是個(gè)需要解決的問題。4、不能及時(shí)歸還的圖書經(jīng)常有讀者超期借閱的情況發(fā)生,對(duì)此類讀者的超期信息提示也是圖書借閱管理工作中的必須要解決的問題之一。對(duì)于上述存在的問題,開發(fā)一種針對(duì)性的圖書借閱管理系統(tǒng)進(jìn)行管理是十分必要的。3
20、.1技術(shù)可行性分析技術(shù)可行性要考慮現(xiàn)有的技術(shù)條件是否能夠順利完成開發(fā)工作,軟硬件配置是否滿足開發(fā)的需求等。本圖書管理系統(tǒng)用的是JAVA開發(fā)語(yǔ)言,調(diào)試相對(duì)簡(jiǎn)單,當(dāng)前的計(jì)算機(jī)硬件配置也完全能滿足開發(fā)的需求,因此在技術(shù)上是絕對(duì)可行的。軟件方面:由于目前單機(jī)模式相對(duì)發(fā)展成熟,故軟件的開發(fā)平臺(tái)成熟可行,它們速度快、容量大、可靠性能高、價(jià)格低,完全能滿足系統(tǒng)的需求。3.2經(jīng)濟(jì)可行性由于圖書(tsh)管理系統(tǒng)是作為畢業(yè)設(shè)計(jì)由我們自己開發(fā)的,在經(jīng)濟(jì)上的投入甚微,系統(tǒng)建成之后將為今后圖書管理提供很大的方便,估算新系統(tǒng)的開發(fā)費(fèi)用和今后的運(yùn)行、維護(hù)費(fèi)用,估計(jì)新系統(tǒng)將獲得的效益,并將費(fèi)用與效益進(jìn)行比較,對(duì)今后使用十分
21、有利。3.3操作(cozu)可行性在設(shè)計(jì)系統(tǒng)的過程中,充分考慮到管理人員和學(xué)生的習(xí)慣。界面風(fēng)格使用簡(jiǎn)單大方(dfng)形式呈現(xiàn)。使用方便,而無需進(jìn)行任何軟件的安裝,操作簡(jiǎn)單;按權(quán)限使用并提供多種查詢手段,在操作上可行。3.4運(yùn)行可行性運(yùn)行可行性是對(duì)組織結(jié)構(gòu)的影響,現(xiàn)有人員和機(jī)構(gòu)和環(huán)境對(duì)系統(tǒng)的適應(yīng)性及人員培訓(xùn)補(bǔ)充計(jì)劃的可行性。當(dāng)前社會(huì)信息化技術(shù)已經(jīng)相當(dāng)普及,各類操作人員水平都有相當(dāng)?shù)母叨?,所以在運(yùn)行上是可行性的。根據(jù)新系統(tǒng)目標(biāo)來衡量所需的技術(shù)是否具備,一般可從硬件、軟件的性能要求、環(huán)境條件、技術(shù)人員水平和數(shù)量等方面去考慮和分析,其中開發(fā)人員的技術(shù)力量應(yīng)首先考慮能力與水平,并考慮近期內(nèi)可以培養(yǎng)和發(fā)
22、展的技術(shù)人員。3.5系統(tǒng)功能分析圖書管理系統(tǒng)總共分為六大功能模塊,包括讀者登陸、圖書類別管理、添加圖書管理、刪除圖書管理、修改圖書管理、查詢圖書管理。讀者登陸管理:讀者通過管理人員提供的讀者名和密碼,進(jìn)行登陸。圖書類別(libi)管理:讀者通過登陸后,可以在界面中看到圖書的類別,長(zhǎng)按圖書類別,可以刪除圖書類別和編輯圖書類別,通過點(diǎn)擊可以處理相應(yīng)的操作。添加圖書管理(gunl):點(diǎn)擊添加圖書,可以編輯圖書的條形碼、圖書名稱、圖書類別、圖書價(jià)格、圖書庫(kù)存、出版日期以及圖書的圖片。刪除圖書管理(gunl):通過點(diǎn)擊可刪除圖書。修改圖書管理:修改圖書可以修改圖書名稱、圖書類別、圖書價(jià)格、圖書庫(kù)存、出版
23、日期以及圖書的圖片,但是不可以修改圖書的名稱。查詢圖書管理:輸入相應(yīng)的圖書名稱、圖書類別、圖書價(jià)格、圖書庫(kù)存、出版日期,可以查詢到數(shù)據(jù)庫(kù)中的圖書。3.6模塊框架圖圖書管理系統(tǒng)客戶端(1)客戶端:圖書類別管理添加圖書管理刪除圖書管理修改圖書管理查詢圖書管理讀者登錄圖書類別圖書編號(hào)圖書名稱添加圖書類別修改圖書類別圖書管理系統(tǒng)服務(wù)端(2)服務(wù)端:獲取圖書獲取用戶信息獲取圖書類別3.7模塊(m kui)E-R圖用戶名ID密碼讀者登錄圖片ID圖書價(jià)格類別書名四、系統(tǒng)部分代碼(di m)實(shí)現(xiàn)4.1服務(wù)端連接(linji)數(shù)據(jù)庫(kù)代碼:package com.mobileserver.util;/*連接池工具
24、類,返回唯一(wi y)的一個(gè)數(shù)據(jù)庫(kù)連接池對(duì)象*/public class ConnectionPoolUtils private static ConnectionPool poolInstance = null;public static ConnectionPool GetPoolInstance()if(poolInstance = null) poolInstance = new ConnectionPool( com.mysql.jdbc.Driver,jdbc:mysql:/:3306/mobileserverDB?useUnicode=true&characterEncodin
25、g=utf-8,root, 111111);try poolInstance.createPool(); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();return poolInstance;4.2服務(wù)端類別增刪查改代碼:package com.mobileserver.dao;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;import com.mobileserver.domain.Book
26、Class;import com.mobileserver.util.DB;public class BookClassDAO public List QueryAllBookClass() List bookClassList = new ArrayList();DB db = new DB();String sql = select * from BookClass;try ResultSet rs = db.executeQuery(sql);while (rs.next() BookClass bookClass = new BookClass();bookClass.setBookC
27、lassId(rs.getInt(bookClassId);bookClass.setBookClassName(rs.getString(bookClassName);bookClassList.add(bookClass); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace(); finally db.all_close();return bookClassList;/* 傳入圖書類型對(duì)象(duxing),進(jìn)行圖書類型的添加業(yè)務(wù) */public String AddBookClass(BookCl
28、ass bookClass) DB db = new DB();String result = ;try /* 如果所有(suyu)驗(yàn)證通過就執(zhí)行sql插入新商品信息 */String sqlString = insert into BookClass(bookClassName) values (+ bookClass.getBookClassName() + );db.executeUpdate(sqlString);result = 圖書類別添加(tin ji)成功!; catch (Exception e) e.printStackTrace();result = 圖書類別添加失敗;
29、finally db.all_close();return result;/* 刪除圖書(tsh)類別 */public String DeleteBookClass(String bookClassId) DB db = new DB();String result = ;try /* 如果所有驗(yàn)證通過(tnggu)就執(zhí)行sql插入新商品信息 */String sqlString = delete from BookClass where bookClassId=+ bookClassId;db.executeUpdate(sqlString);result = 圖書類別刪除(shnch)成
30、功!; catch (Exception e) System.out.println(數(shù)據(jù)庫(kù)錯(cuò)誤: + e.getMessage(); result = 圖書類別刪除失敗; finally db.all_close();return result;/* 根據(jù)圖書類別編號(hào)獲取到圖書類別信息 */public BookClass GetBookClass(int bookClassId) BookClass bookClass = null;DB db = new DB();String sql = select * from BookClass where bookClassId= + book
31、ClassId;try ResultSet rs = db.executeQuery(sql);if (rs.next() bookClass = new BookClass();bookClass.setBookClassId(rs.getInt(bookClassId);bookClass.setBookClassName(rs.getString(bookClassName); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace(); finally db.all_close();return bo
32、okClass;/* 更新圖書(tsh)類別信息 */public String UpdateBookClass(BookClass bookClass) DB db = new DB();String result = ;try String sql = update BookClass set bookClassName=+ bookClass.getBookClassName() + where bookClassId=+ bookClass.getBookClassId();db.executeUpdate(sql);result = 圖書類別刪除(shnch)成功!; catch (
33、Exception e) e.printStackTrace();result = 圖書類別刪除(shnch)失敗; finally db.all_close();return result;4.3服務(wù)端圖書增刪查改代碼:package com.mobileserver.dao;import java.sql.ResultSet;import java.sql.Timestamp;import java.util.ArrayList;import java.util.List;import com.mobileserver.domain.Book;import com.mobileserver
34、.domain.BookClass;import com.mobileserver.util.DB;public class BookDAO public List QueryBook(String barcode, String bookName,int bookClassId, Timestamp publishDate) List bookList = new ArrayList();DB db = new DB();String sql = select * from Book where 1=1;if (!barcode.equals()sql += and barcode like
35、 % + barcode + %;if (!bookName.equals()sql += and bookName like % + bookName + %;if (bookClassId != 0)sql += and bookClassId= + bookClassId;if(publishDate!=null)sql += and publishDate= + publishDate + ;try ResultSet rs = db.executeQuery(sql);while (rs.next() Book book = new Book();book.setBarcode(rs
36、.getString(barcode);book.setBookClassId(rs.getInt(bookClassId);book.setBookImage(rs.getString(bookImage);book.setBookName(rs.getString(bookName);book.setCount(rs.getInt(count);book.setPrice(rs.getFloat(price);book.setPublishDate(rs.getTimestamp(publishDate);bookList.add(book); catch (Exception e) /
37、TODO Auto-generated catch blocke.printStackTrace(); finally db.all_close();return bookList;/* 傳入圖書對(duì)象,進(jìn)行(jnxng)圖書的添加業(yè)務(wù) */public String AddBook(Book book) DB db = new DB();String result = ;try /* 如果所有驗(yàn)證(ynzhng)通過就執(zhí)行sql插入新商品信息 */String sqlString = insert into Book(barcode,bookName,bookClassId,price,cou
38、nt,publishDate,bookImage) values (;sqlString += book.getBarcode() + ,;sqlString += book.getBookName() + ,;sqlString += book.getBookClassId() + ,;sqlString += book.getPrice() + ,;sqlString += book.getCount() + ,;sqlString += book.getPublishDate() + ,;sqlString += book.getBookImage() + );db.executeUpd
39、ate(sqlString);result = 圖書(tsh)添加成功!; catch (Exception e) e.printStackTrace();result = 圖書添加(tin ji)失敗; finally db.all_close();return result;/* 刪除圖書 */public String DeleteBook(String barcode) DB db = new DB();String result = ;try String sqlString = delete from Book where barcode= + barcode+ ;db.execu
40、teUpdate(sqlString);result = 圖書刪除成功!; catch (Exception e) e.printStackTrace();result = 圖書刪除失敗; finally db.all_close();return result;/* 根據(jù)條形碼獲取到圖書(tsh)信息 */public Book GetBook(String barcode) Book book = null;DB db = new DB();String sql = select * from Book where barcode= + barcode + ;try ResultSet r
41、s = db.executeQuery(sql);if (rs.next() book = new Book();book.setBarcode(rs.getString(barcode);book.setBookClassId(rs.getInt(bookClassId);book.setBookImage(rs.getString(bookImage);book.setBookName(rs.getString(bookName);book.setCount(rs.getInt(count);book.setPrice(rs.getFloat(price);book.setPublishD
42、ate(rs.getTimestamp(publishDate); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace(); finally db.all_close();return book;/* 更新(gngxn)圖書信息 */public String UpdateBook(Book book) DB db = new DB();String result = ;try String sql = update Book set bookName=;sql += book.getBookName()
43、 + ,bookClassId=;sql += book.getBookClassId() + ,price=;sql += book.getPrice() + ,count=;sql += book.getCount() + ,publishDate=;sql += book.getPublishDate() + ,bookImage=;sql += book.getBookImage() + where barcode=+ book.getBarcode() + ;db.executeUpdate(sql);result = 圖書更新(gngxn)成功!; catch (Exception
44、 e) e.printStackTrace();result = 圖書(tsh)更新失敗; finally db.all_close();return result;4.4服務(wù)端BookServlet代碼(di m):package com.mobileserver.servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.Date;import java.sql.PreparedStatement;import java.sql.Result
45、Set;import java.sql.SQLException;import java.sql.Timestamp;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSe
46、rvletResponse;import org.json.JSONStringer;import com.mobileserver.dao.BookClassDAO;import com.mobileserver.dao.BookDAO;import com.mobileserver.domain.Book;import com.mobileserver.domain.BookClass;import com.mobileserver.util.DBUtil; public class BookServlet extends HttpServlet private static final
47、long serialVersionUID = 1L;private BookDAO bookDAO = new BookDAO(); public BookServlet() super(); / TODO Auto-generated constructor stubprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException / TODO Auto-generated method stubthis.doPost(req
48、uest, response);protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException / TODO Auto-generated method stubString action = request.getParameter(action);if(action.equals(query) String barcode = request.getParameter(barcode);barcode = barcode=
49、null?:new String(request.getParameter(barcode).getBytes(iso-8859-1),UTF-8);String bookName = request.getParameter(bookName);bookName = bookName=null?:new String(request.getParameter(bookName).getBytes(iso-8859-1),UTF-8);int bookClassId = 0;if(request.getParameter(bookClassId) != null)bookClassId = I
50、nteger.parseInt(request.getParameter(bookClassId);Timestamp publishDate = null;if(request.getParameter(publishDate)!=null)publishDate = Timestamp.valueOf(request.getParameter(publishDate);List bookList = bookDAO.QueryBook(barcode,bookName,bookClassId,publishDate); StringBuffer sb = new StringBuffer(
51、);sb.append().append(rn).append().append(rn);for(int i = 0; ibookList.size(); i+) sb.append().append(rn).append().append(bookList.get(i).getBarcode().append().append(rn).append().append(bookList.get(i).getBookName().append().append(rn).append().append(bookList.get(i).getBookClassId().append().append
52、(rn).append().append(bookList.get(i).getPrice().append().append(rn).append().append(bookList.get(i).getCount().append().append(rn).append().append(bookList.get(i).getPublishDate().append().append(rn).append().append(bookList.get(i).getBookImage().append().append(rn).append().append(rn);sb.append().a
53、ppend(rn); response.setCharacterEncoding(utf-8);PrintWriter out = response.getWriter();out.print(sb.toString(); else if(action.equals(add) /*獲取(huq)參數(shù)*/String barcode = new String(request.getParameter(barcode).getBytes(iso-8859-1),UTF-8); int bookClassId = Integer.parseInt(request.getParameter(bookC
54、lassId); String bookImage = new String(request.getParameter(bookImage).getBytes(iso-8859-1),UTF-8); String bookName = new String(request.getParameter(bookName).getBytes(iso-8859-1),UTF-8); int count = Integer.parseInt(request.getParameter(count); float price = Float.parseFloat(request.getParameter(p
55、rice);Timestamp publishDate = Timestamp.valueOf(request.getParameter(publishDate); /*封裝對(duì)象(duxing)*/Book book = new Book();book.setBarcode(barcode);book.setBookClassId(bookClassId);book.setBookImage(bookImage);book.setBookName(bookName);book.setCount(count);book.setPrice(price);book.setPublishDate(pu
56、blishDate);/*調(diào)用業(yè)務(wù)層執(zhí)行(zhxng)添加添加*/String result = bookDAO.AddBook(book); response.setCharacterEncoding(utf-8);PrintWriter out = response.getWriter();out.print(result); else if(action.equals(delete) String barcode = new String(request.getParameter(barcode).getBytes(iso-8859-1),UTF-8);BookDAO bookDAO =
57、 new BookDAO();String result = bookDAO.DeleteBook(barcode);response.setCharacterEncoding(utf-8);PrintWriter out = response.getWriter();out.print(result); else if(action.equals(updateQuery) String barcode = new String(request.getParameter(barcode).getBytes(iso-8859-1),UTF-8);BookDAO bookDAO = new Boo
58、kDAO();Book book = bookDAO.GetBook(barcode); /客戶端查詢對(duì)象信息(xnx),返回json數(shù)據(jù)格式/將List組織(zzh)成JSON字符串 JSONStringer stringer = new JSONStringer(); try stringer.array(); stringer.object(); stringer.key(barcode).value(book.getBarcode(); stringer.key(bookName).value(book.getBookName(); stringer.key(bookClassId).
59、value(book.getBookClassId(); stringer.key(price).value(book.getPrice(); stringer.key(count).value(book.getCount(); stringer.key(publishDate).value(book.getPublishDate(); stringer.key(bookImage).value(book.getBookImage(); stringer.endObject(); stringer.endArray(); catch(Exception e) response.getOutpu
60、tStream().write(stringer.toString().getBytes(UTF-8); response.setContentType(text/json; charset=UTF-8); /JSON的類型(lixng)為text/json else if(action.equals(update) /*獲取參數(shù)*/String barcode = new String(request.getParameter(barcode).getBytes(iso-8859-1),UTF-8); int bookClassId = Integer.parseInt(request.ge
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)部商品房合同范例
- 售貨員用工合同范例
- 0kv配電網(wǎng)工程臨時(shí)用電供應(yīng)合同
- 04年設(shè)備采購(gòu)與安裝調(diào)試合同
- 2024云計(jì)算平臺(tái)服務(wù)采購(gòu)合同
- 2024年廣告投放與代理合同
- 人力資源招投標(biāo)法人授權(quán)委托書
- 工程驗(yàn)收電力施工合同范本
- 房地產(chǎn)銷售市場(chǎng)定位
- 建筑施工安全責(zé)任協(xié)議
- 各種閥門的用途及分類
- 排油煙設(shè)施清洗作業(yè)的風(fēng)險(xiǎn)識(shí)別、評(píng)價(jià)及控制
- Lindmark平衡評(píng)分標(biāo)準(zhǔn)(WHO認(rèn)證)
- 銅唑等17 種防腐劑對(duì)毛竹的室內(nèi)耐腐試驗(yàn)※
- 壓電陶瓷蜂鳴片項(xiàng)目可行性研究報(bào)告寫作范文
- 通道農(nóng)藥殘留檢測(cè)儀操作說明書
- 冷庫(kù)工程施工質(zhì)量保證體系及質(zhì)量保證措施
- 幕墻使用、保養(yǎng)、維修說明書
- 數(shù)碼插畫課件新版]
- 八年級(jí)數(shù)學(xué)上冊(cè)期中考試試卷分析
- 毽球校本課程開發(fā)綱要
評(píng)論
0/150
提交評(píng)論