畢業(yè)設(shè)計--基于android平臺的圖書管理系統(tǒng)手機客戶端開發(fā)(含外文翻譯)_第1頁
已閱讀1頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計</b></p><p>  題 目 基于Android平臺的圖書管理系統(tǒng)手機客戶端開發(fā) </p><p>  學(xué)生姓名 xxx </p><p>  學(xué) 號 </p><p>  專業(yè)班級 通信工程 </p>

2、;<p>  指導(dǎo)教師 xxx </p><p>  學(xué) 院 計算機與通信 </p><p>  答辯日期 2012年6月 </p><p>  基于Android平臺的圖書管理系統(tǒng)手機客戶端開發(fā)</p><p>  The development of library management system

3、is based on the Android platform </p><p><b>  xxx0825</b></p><p><b>  摘 要</b></p><p>  傳統(tǒng)WEB應(yīng)用只能在PC機上使用,不能做到隨時隨地的使用,為了解決這樣的不足,基于Android平臺的圖書館管理系統(tǒng)客戶端就應(yīng)運而生。本設(shè)計

4、闡述了在Android平臺下圖書館管理系統(tǒng)的設(shè)計與實現(xiàn)過程,其目的是讓人們能夠在基于Google Android平臺的移動設(shè)備上享用傳統(tǒng)WEB上圖書館管理系統(tǒng)的基本功能。本系統(tǒng)采用C/S結(jié)構(gòu), MVC軟件開發(fā)模式,使用android布局技術(shù)完成UI的設(shè)計,基于Java語言開發(fā)完成,在不同型號的設(shè)備模擬器上測試通過。系統(tǒng)實現(xiàn)了用戶注冊、登錄、查詢圖書以及學(xué)生用戶管理和圖書管理等功能?!安僮骱唵危δ軐嵱谩边@是本軟件設(shè)計的核心理念,本系統(tǒng)力

5、求創(chuàng)造最好的用戶體驗。</p><p>  關(guān)鍵詞:圖書館管理系統(tǒng);ANDROID;客戶端;數(shù)據(jù)庫設(shè)計;服務(wù)器端</p><p><b>  Abstract</b></p><p>  The WEB application can only in traditional PC use, can't do it at any time

6、 and place to use, in order to solve the shortage of such, based on the Android platform of library management system client is made. This paper expounds the workbench Android library management system design and impleme

7、ntation process, and its purpose is to let people can be based on the Google Android platform of mobile devices to enjoy the traditional WEB on the basic functions of the library management system. The sys</p><

8、;p>  Key words : library management system; ANDROID; client; database design; server </p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractII</p

9、><p><b>  第1章 前 言1</b></p><p>  1.1 課題研究的目的及意義1</p><p>  1.2 課題的現(xiàn)狀1</p><p>  1.3 課題的內(nèi)容1</p><p>  第2章 軟件設(shè)計及開發(fā)工具介紹3</p><p>  2.1 總

10、體設(shè)計3</p><p>  2.2 系統(tǒng)結(jié)構(gòu)3</p><p>  2.3 開發(fā)工具介紹和關(guān)鍵技術(shù)3</p><p>  2.3.1 Eclipse的介紹3</p><p>  2.3.2 MyEclipse與Tomcat介紹6</p><p>  2.3.3 關(guān)鍵技術(shù)介紹7</p><

11、;p>  第3章 系統(tǒng)功能設(shè)計8</p><p>  3.1 前臺管理8</p><p>  3.1.1 注冊8</p><p>  3.1.2 用戶登錄8</p><p>  3.1.3 圖書查詢8</p><p>  3.1.4 用戶管理9</p><p>  3.1.5

12、圖書管理9</p><p>  3.2 后臺管理9</p><p>  3.2.1 注冊管理9</p><p>  3.2.2 登錄管理9</p><p>  3.2.3 圖書查詢管理10</p><p>  3.2.4 用戶管理10</p><p>  3.2.5 圖書管理10&

13、lt;/p><p>  第4章 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計11</p><p>  4.1 服務(wù)器端數(shù)據(jù)庫設(shè)計11</p><p>  4.1.1 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計11</p><p>  4.1.2 數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計13</p><p>  第5章 模塊開發(fā)及編碼實現(xiàn)15</p><p>  5

14、.1 服務(wù)器端的設(shè)計---搭建java web服務(wù)器15</p><p>  5.2 連接數(shù)據(jù)庫模塊15</p><p>  5.3 服務(wù)器功能模塊16</p><p>  5.3.1 注冊模塊16</p><p>  5.3.2 登錄模塊17</p><p>  5.3.3 書籍查詢模塊18</p&

15、gt;<p>  5.3.4 特定用戶查詢模塊19</p><p>  5.3.5 查詢所有用戶模塊20</p><p>  5.3.6 添加書籍模塊21</p><p>  5.4 客戶端的設(shè)計---設(shè)計ANDROID UI界面22</p><p>  5.5 具體功能模塊23</p><p>

16、;  5.5.1 注冊界面23</p><p>  5.5.2 登錄界面26</p><p>  5.5.3 學(xué)生用戶書籍查詢界面28</p><p>  5.5.4 管理員界面29</p><p>  5.5.5 管理學(xué)生用戶界面30</p><p>  5.5.6 管理圖書界面31</p>

17、<p>  5.5.7 圖書增加界面32</p><p>  第6章 系統(tǒng)測試34</p><p>  6.1 用戶注冊測試34</p><p>  6.2 用戶登錄測試34</p><p>  6.3 圖書查詢測試36</p><p>  6.4 用戶管理測試36</p><

18、;p>  6.5 書籍管理測試37</p><p><b>  總 結(jié)39</b></p><p><b>  參考文獻41</b></p><p>  附錄一 核心代碼42</p><p>  附錄二 外文文獻(原文)43</p><p>  附錄三 外文文

19、獻(譯文)52</p><p><b>  致 謝60</b></p><p><b>  第1章 前 言</b></p><p>  1.1 課題研究的目的及意義</p><p>  移動互聯(lián)網(wǎng)時代的來臨,說明一個嶄新的時代開始了。所謂移動互聯(lián)網(wǎng)是將移動通信和互聯(lián)網(wǎng)整合在一起,移動設(shè)備(包括

20、手機和上網(wǎng)本)可以隨時隨地地訪問互聯(lián)網(wǎng)資源和應(yīng)用。</p><p>  智能手機是移動互聯(lián)網(wǎng)時代一個標志性的客戶端工具,它和傳統(tǒng)的手機是有區(qū)別的,它就像一臺“小電腦”,具有獨立的操作系統(tǒng),可以自由安裝、卸載軟件,具有強大的計算和存儲能力,可以通過移動通信網(wǎng)絡(luò)來實現(xiàn)無線網(wǎng)絡(luò)接入。</p><p>  對于移動終端設(shè)備飛速發(fā)展的今天,傳統(tǒng)WEB上的應(yīng)用出現(xiàn)在手機終端是一個大的趨勢。而基于And

21、roid開發(fā)的圖書館管理系統(tǒng)手機客戶端,正是對這一趨勢的良好體現(xiàn),Android平臺下的圖書館管理系統(tǒng)的開發(fā),能很好的為用戶提供方便,用戶能通過它能隨時隨地的了解系統(tǒng)的實時信息,做到信息的實時化。通過Android平臺下的圖書館管理系統(tǒng)客戶端的開發(fā),與傳統(tǒng)WEB應(yīng)用進行良好的互補。</p><p>  同時,對于校內(nèi)的圖書館管理系統(tǒng)來說,手機對于學(xué)生是必不可少的一個物品,手機客戶端這種形式的圖書館管理系統(tǒng),能更加

22、貼近學(xué)生的生活習慣,并且適合學(xué)生年齡段的習性,這對學(xué)生更多的接觸到圖書館的信息有一定得促進作用。</p><p><b>  1.2 課題的現(xiàn)狀</b></p><p>  目前國內(nèi)的基于Android平臺的圖書館管理系統(tǒng)客戶端還不成熟,大多數(shù)的圖書館管理系統(tǒng)都出現(xiàn)在傳統(tǒng)的WEB應(yīng)用上,在這個環(huán)境下,基于Android平臺的圖書館管理系統(tǒng)客戶端屬于一個嶄新的應(yīng)用。作為

23、一個不太成熟的應(yīng)用,大多數(shù)圖書館管理系統(tǒng)都是出現(xiàn)在學(xué)習android開發(fā)的一個項目中,作為學(xué)習中的一個練習項目。目前,絕大部分的網(wǎng)絡(luò)應(yīng)用都還是傳統(tǒng)的WEB應(yīng)用,但面對Android手機如此迅速發(fā)展的今天,傳統(tǒng)WEB的應(yīng)用不能滿足人們隨時隨地體驗網(wǎng)絡(luò)應(yīng)用的想法,所以,出現(xiàn)在手機終端的應(yīng)用將會越來越多,同時其發(fā)展的速度也會越來越快。校內(nèi)圖書館管理系統(tǒng)作為傳統(tǒng)WEB應(yīng)用,也必將在手機客戶端上得到應(yīng)用。</p><p>

24、<b>  1.3 課題的內(nèi)容</b></p><p>  由此出現(xiàn)大量的應(yīng)用出現(xiàn)在手機上,基于Android平臺的圖書館管理系統(tǒng)手機客戶端是依據(jù)現(xiàn)在的形式所開發(fā)的,它是一套基于開放性的圖書館管理系統(tǒng),它有傳統(tǒng)WEB上圖書館管理系統(tǒng)的大部分功能。整個系統(tǒng)分為前臺界面管理和后臺服務(wù)器管理兩部分,劃分為用戶管理、圖書管理、信息管理等三個部分。在前臺管理中,用戶進行注冊、登錄、查詢特定圖書等功能;

25、后臺管理模塊,負責控制前臺界面管理的所有功能;本系統(tǒng)設(shè)置了學(xué)生用戶和管理員兩類,兩類用戶都是使用同一個平臺,只是權(quán)限不同。學(xué)生用戶只能注冊、查詢圖書等功能;管理員擁有最高權(quán)限,可以對已經(jīng)畢業(yè)的學(xué)生用戶賬號進行刪除,查詢學(xué)生用戶信息,實時更新圖書館的新書,發(fā)布圖書館最新信息等權(quán)限。</p><p>  本圖書館管理系統(tǒng),能夠適用于各類圖書館,具有良好的可操作性,可以隨時的查詢你所需要的圖書信息,只要你的智能手機安裝

26、了本系統(tǒng)客戶端,系統(tǒng)大大的方便了學(xué)生的圖書查詢的。</p><p>  本系統(tǒng)采用C/S結(jié)構(gòu),后臺服務(wù)器使用Servlet編寫服務(wù)器,同時用Tomcat發(fā)布服務(wù),前臺客戶端環(huán)境使用的是ANDROID控件。通過JDBC來調(diào)用Oracle數(shù)據(jù)庫,來實現(xiàn)手機客戶端與服務(wù)器之間數(shù)據(jù)傳輸。</p><p>  第2章 軟件設(shè)計及開發(fā)工具介紹</p><p>  為了使軟件開發(fā)

27、能夠順利進行,使開發(fā)人員對系統(tǒng)各個模塊的性能、系統(tǒng)接口、系統(tǒng)開發(fā)及運行環(huán)境和計算機內(nèi)部處理的邏輯及物理流程有更清晰的認識,更利于源程序的開發(fā),現(xiàn)對系統(tǒng)的總體設(shè)計和系統(tǒng)結(jié)構(gòu)設(shè)計及開發(fā)工具和關(guān)鍵技術(shù)做詳細說明。</p><p><b>  2.1 總體設(shè)計</b></p><p>  基于ANDROID平臺開發(fā)的圖書館管理系統(tǒng)客戶端從設(shè)計者的角度來看,用戶角色分為學(xué)生用戶

28、和管理員兩類;功能包括注冊、登錄、密碼找回、書籍查詢、圖書實時更新、普通用戶管理共六大部分。其中系統(tǒng)管理中的學(xué)生用戶權(quán)限包括注冊、登錄、密碼找回、書籍查詢等四個模塊;管理員的權(quán)限則是除了學(xué)生用戶具有的權(quán)限外還有實時更新圖書信息、學(xué)生用戶管理等模塊。從使用者的角度來看分為前臺和后臺管理兩大部分。后臺管理模塊是本系統(tǒng)的關(guān)鍵部分之一,它是系統(tǒng)維護和信息管理平臺。根據(jù)現(xiàn)實需要,本系統(tǒng)后臺管理用戶有兩類:管理員和學(xué)生用戶。這兩類用戶使用的系統(tǒng)管理

29、平臺都是同一個平臺上,只不過他們執(zhí)行的權(quán)限不同。</p><p><b>  2.2 系統(tǒng)結(jié)構(gòu)</b></p><p>  本系統(tǒng)總體邏輯結(jié)構(gòu)為C/S結(jié)構(gòu),結(jié)構(gòu)圖如圖2-1所示:</p><p>  圖2.1 C/S結(jié)構(gòu)圖</p><p>  2.3 開發(fā)工具介紹和關(guān)鍵技術(shù)</p><p>  2

30、.3.1 Eclipse的介紹</p><p>  Eclipse 是一個開放源代碼的、基于 Java 的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標準的插件集,包括 Java 開發(fā)工具(Java Development Kit,JDK)?! ?lt;/p><p>  Eclipse的發(fā)展史,版本代號 平臺版本 主

31、要版本發(fā)行日期 SR1發(fā)行日期 SR2發(fā)行日期,如下:</p><p>  表2-1 Eclipse的版本號</p><p>  Eclipse是一個開放源代碼的軟件開發(fā)項目,專注于為高度集成的工具開發(fā)提供一個全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺。它主要由Eclipse項目、Eclipse工具項目和Eclipse技術(shù)項目三個項目組成,具體包括四個部分組成——Eclipse Platform、J

32、DT、CDT和PDE。JDT支持Java開發(fā)、CDT支持C開發(fā)、PDE用來支持插件開發(fā),Eclipse Platform則是一個開放的可擴展IDE,提供了一個通用的開發(fā)平臺。它提供建造塊和構(gòu)造并運行集成軟件開發(fā)工具的基礎(chǔ)。Eclipse Platform允許工具建造者獨立開發(fā)與他人工具無縫集成的工具從而無須分辨一個工具功能在哪里結(jié)束,而另一個工具功能在哪里開始。</p><p>  Android工程是在Ecli

33、pse工具上編寫的,進行android工程的編寫,首先需要在Eclipse上安裝ADT插件,然后指定SDK所在的路徑,便可以創(chuàng)建android虛擬機了。</p><p>  在Eclipse下創(chuàng)建虛擬機的步驟如下:</p><p><b>  安裝ADT插件</b></p><p>  在Eclipse單擊菜單欄的Help,在Help里面選中I

34、nstall NewSoftware選項,之后便可以出現(xiàn)如下界面:</p><p>  圖2.2 ADT安裝步驟界面</p><p>  指定好你的ADT路徑后,便可以安裝好ADT插件。</p><p>  導(dǎo)入AndroidSDK</p><p>  安裝好ADT插件后,單擊Eclipse菜單欄Windows下找到preperence,點擊

35、進入,得到如下界面:</p><p>  圖2.3 AndroidSDK安裝界面</p><p>  在左邊選項選中Android,在SDK Location下導(dǎo)入AndroidSDK路徑,點擊Apply應(yīng)用,便會導(dǎo)入Android的各個版本。</p><p><b>  創(chuàng)建虛擬機</b></p><p>  安裝好A

36、DT和導(dǎo)入AndroidSDK成功后,便可以在菜單欄Windows下找到AVD manage選項,單擊進入后便有新建android虛擬機界面,在創(chuàng)建界面設(shè)置好虛擬機參數(shù)點擊確定后,就創(chuàng)建好了一個android虛擬機。</p><p>  創(chuàng)建好虛擬機后,點擊開始便可以運行一個android虛擬機,虛擬機運行成功界面如下:</p><p>  圖2.4 android虛擬機視圖</p&

37、gt;<p>  虛擬機模擬的是android智能手機的界面,通過操作虛擬機可以體驗到android智能手機的部分應(yīng)用。同時虛擬機是作為開發(fā)的android應(yīng)用運行的場所,他提供基本的人機交互功能。</p><p>  2.3.2 MyEclipse與Tomcat介紹</p><p>  MyEclipse是一個十分優(yōu)秀的用于開發(fā)Java, J2EE的Eclipse插件集合。

38、MyEclipse企業(yè)級工作平臺(MyEclipse Enterprise Workbench ,簡稱MyEclipse)是對EclipseIDE的擴展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,支持HTML,Struts,JSP,Javascript, Hibernate,MyEclipse,CSS,

39、Spring,SQL的功能非常強大,支持也十分廣泛,尤其是對各種開源產(chǎn)品的支持十分不錯。在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類: 1. JavaEE模型 2. WEB開發(fā)工具 3. EJB開發(fā)工具 4. 應(yīng)用程序服務(wù)器的連接器 5. JavaEE項目部署服務(wù) 6. 數(shù)據(jù)庫服務(wù) 7. MyEclipse整合幫助 對于以上每一種功能上的類別,在Ecli

40、pse中都有相應(yīng)的功能部件,并通</p><p>  本系統(tǒng)是基于C/S架構(gòu)的,所以需要在MyEclipse上創(chuàng)建服務(wù)器端,利用Java EE中的servlet來提供服務(wù),并將其部署在Tomcat下。需要解決的是創(chuàng)建不同的servlet來提供不同的服務(wù)。</p><p>  Tomcat是Apache 軟件基金會(Apache Software Foundation)的Jakarta 項目

41、中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 規(guī)范。因為Tomcat 技術(shù)先進、性能穩(wěn)定,而且免費,因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認可,成為目前比較流行的Web 應(yīng)用服務(wù)器。目前最新版本是7.0。</p>

42、<p>  Tomcat 很受廣大程序員的喜歡,因為它運行時占用的系統(tǒng)資源小,擴展性好,支持負載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。</p><p>  Tomcat 是一個輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。對于一個初學(xué)者來說,可以這樣認為,

43、當在一臺機器上配置好Apache 服務(wù)器,可利用它響應(yīng)對HTML 頁面的訪問請求。實際上Tomcat 部分是Apache 服務(wù)器的擴展,但它是獨立運行的,所以當你 Apache Tomcat運行tomcat 時,它實際上作為一個與Apache 獨立的進程單獨運行的。而Tomcat 實際上運行JSP 頁面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet

44、和JSP容器,獨立的Servlet容器是Tomcat的默認模式。不過,Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。目前Tomcat最新版本為7.0.27 Released。</p><p>  2.3.3 關(guān)鍵技術(shù)介紹</p><p>  本軟件采用java作為開發(fā)語言,布局和數(shù)據(jù)存儲是開發(fā)本軟件的關(guān)鍵技術(shù),布局用來設(shè)計用戶交互界面,用戶界面的設(shè)計是否美觀和合理直接影響用戶體

45、驗,因此運用好布局技術(shù)是直接和用戶相關(guān)的,而數(shù)據(jù)存儲技術(shù)則記錄了用戶所有的操作數(shù)據(jù)和用戶所需要提取的數(shù)據(jù)。</p><p>  在android中,軟件UI通常使用xml技術(shù)設(shè)計,而xml中控件的位置和狀態(tài)則離不開布局的使用,android中常用的布局有5種,分別是:AbsoluteLayout、LinearLayout、RelativeLayout、FrameLayout、TableLayout,由于布局的使用

46、,并且布局之間可以互相嵌套,使得android軟件UI的設(shè)計變得非常靈活,即使是一些非常復(fù)雜的界面設(shè)計,只要合理的使用布局,也會使開發(fā)變得很容易。</p><p>  Android中數(shù)據(jù)存儲技術(shù)主要有:文件存儲、preference、sqlite、ContentProvider和網(wǎng)絡(luò)存儲,文件存儲是以流的形式讀寫文件,可以以文格的格式,也可以以二進制的形式,在java語言中要使用流,則寫入文件的對象必須進行序列

47、化,sqlite是嵌入式移動設(shè)備中常用的輕量級數(shù)據(jù)庫,可看作計算機上使用的sql server、oracle數(shù)據(jù)庫。本系統(tǒng)中,采用的是Oracle數(shù)據(jù)庫進行儲存圖書館里的基本信息。</p><p>  第3章 系統(tǒng)功能設(shè)計</p><p>  本系統(tǒng)采用C/S模式開發(fā)的,該系統(tǒng)的客戶端和服務(wù)器端是獨立分開的,這樣的分開也就形成了前臺管理和后臺管理。前臺管理注重用戶的交互是否簡便,后臺管理注

48、重功能的邏輯和與數(shù)據(jù)庫數(shù)據(jù)交互的功能。</p><p><b>  3.1 前臺管理</b></p><p>  前臺客戶端的所有功能畫出的功能流程圖如下:</p><p>  圖3.1 前臺客戶端流程圖</p><p><b>  3.1.1 注冊</b></p><p>

49、  用戶通過手機客戶端主界面上的注冊按鈕注冊新的學(xué)生用戶,注冊用戶的信息通過服務(wù)器端和數(shù)據(jù)庫連接,數(shù)據(jù)庫中的用戶表則會生成你注冊的信息,同時在手機客戶端提示注冊成功。</p><p>  3.1.2 用戶登錄</p><p>  用戶登錄分為兩類用戶:管理員和學(xué)生用戶??梢酝ㄟ^登錄界面中選定身份登錄,服務(wù)器根據(jù)登錄選定的信息選擇數(shù)據(jù)庫中的數(shù)據(jù)表進行匹配,用戶名和密碼正確則登錄成功。<

50、/p><p>  3.1.3 圖書查詢</p><p>  在查詢界面輸入所需查詢書籍的書名和作者名,通過服務(wù)器端查詢數(shù)據(jù)庫返回你所查詢的書籍信息,書籍信息包括:書名、作者、出版社名、是否被接、剩余本數(shù)等信息。</p><p>  在圖書查詢功能中,運用到了ANDROID的一個自動完成文本的控件,該控件可以通過你輸入的查詢信息列出帶有你輸入字的書名,以方便你的檢索。通過

51、此控件,大大的提高了用戶檢索書籍的效率,同時滿足了模糊查詢的功能,是用戶查詢書籍方便、快捷。</p><p>  3.1.4 用戶管理</p><p>  用戶管理模塊是管理員對學(xué)生用戶賬號的管理,對于某些特殊原因賬號不使用了,比如:學(xué)生畢業(yè)等原因不再使用賬號的問題,管理員有權(quán)利對這類賬號進行刪除,同時可以學(xué)生用戶的用戶名查詢學(xué)生用戶的信息。</p><p>  3

52、.1.5 圖書管理</p><p>  這個功能也只有管理員身份才能擁有,管理員通過此功能,可以對圖書進行增加、刪出功能。</p><p>  通過這個模塊,管理員可以對新進的圖書進行添加處理,并能實時發(fā)布新增書籍。對于刪除功能,管理員可以把一些已經(jīng)下架,不再外借的書籍進行刪除,以便造成不必要的麻煩。</p><p><b>  3.2 后臺管理</

53、b></p><p>  后臺服務(wù)器端的任務(wù)是根據(jù)客戶端送發(fā)送過來的請求,根據(jù)客戶端不同功能模塊,通過檢索數(shù)據(jù)庫不同表格,把檢索結(jié)果返回給客戶端顯示給以用戶,其基本流程圖如下:</p><p>  圖3.2 后臺服務(wù)器端流程圖</p><p>  3.2.1 注冊管理</p><p>  注冊用戶提交:向服務(wù)器提交用戶注冊的信息,同時更

54、新到數(shù)據(jù)庫。 </p><p>  注冊管理是后臺的一個重要內(nèi)容,注冊只提供學(xué)生用戶的注冊,這樣可以保證圖書館用戶權(quán)限的穩(wěn)定和安全。通過注冊用戶,用戶才能享受來自手機客戶端的所有功能。通過手機客戶端注冊用戶,來作為以后通過手機客戶端登錄圖書館管理系統(tǒng)的唯一身份認證。</p><p>  3.2.2 登錄管理</p><p>  登錄管理:根據(jù)你登錄的信息向服務(wù)器發(fā)送

55、請求,然后和數(shù)據(jù)庫信息進行對比,來確認用戶登錄的成功與否。 </p><p>  登錄時候,首先你必須選定你的登錄身份,是以學(xué)生用戶還是管理員身份登錄,根據(jù)你選擇的不同身份,服務(wù)器向不同的數(shù)據(jù)庫表來核對信息,以通過對用戶信息的核對,以確定所登錄的賬號密碼是否正確。</p><p>  3.2.3 圖書查詢管理</p><p>  圖書查詢管理主要通過圖書的幾個關(guān)鍵信

56、息進行查詢,根據(jù)圖書名字和圖書作者向數(shù)據(jù)庫提交信息進行條件檢索。通過輸入信息的檢索,返回檢索書籍的基本信息,比如:圖書名字、圖書作者、出版社名、是否被借、剩余數(shù)量等基本信息。</p><p>  3.2.4 用戶管理</p><p>  后臺的用戶管理,是處理管理員對有特殊情況的學(xué)生用戶和查詢特定學(xué)生用戶的服務(wù),是與數(shù)據(jù)庫進行數(shù)據(jù)更新與交互的服務(wù)。</p><p>

57、  3.2.5 圖書管理</p><p>  后臺的圖書管理,是處理管理員把新書添加到書籍數(shù)據(jù)庫表的服務(wù),通過添加到數(shù)據(jù)庫表,學(xué)生用戶才能在書籍查詢功能中查詢到新更新的書籍信息。同時,對于不再外借的書籍從數(shù)據(jù)庫刪除,以此來更新數(shù)據(jù)庫中的書籍名稱。</p><p>  第4章 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計</p><p>  4.1 服務(wù)器端數(shù)據(jù)庫設(shè)計</p><

58、;p>  采用的是Oracle數(shù)據(jù)庫。在本系統(tǒng)中采用了簡易版的Oracle,即數(shù)據(jù)庫的名字為Oracle XE,首先要解決的是在該數(shù)據(jù)庫里某個用戶下創(chuàng)建表。</p><p>  首先配置Oracle數(shù)據(jù)庫,步驟如下: </p><p>  (1) 以O(shè)racle管理員身份進入Oracle,在終端輸入的命令為:sqlplus "/as sysdba";</p&

59、gt;<p>  (2) 啟動Oracle,在終端輸入的命令為:startup;</p><p>  (3) 創(chuàng)建新的用戶,在終端的命令為:先以管理員身份登錄數(shù)據(jù)庫,然后創(chuàng)建新的用戶的命令為:</p><p>  create user liuyujuan identified by liuyujuan;</p><p>  grant resourc

60、e,connect to liuyujuan;</p><p>  所創(chuàng)建的用戶賬號和密碼分別為:liuyujuan,liuyujuan;</p><p>  (4)然后以liuyujuan用戶登錄,命令為:sqlplus liuyujuan/liuyujuan。</p><p>  在賬戶liuyujuan下創(chuàng)建數(shù)據(jù)表,以滿足圖書館管理的日常需要,表格名稱分別為:

61、 lib_admin,lib_user,lib_books,lib_ret,各個數(shù)據(jù)表的儲存的信息分別為:管理員信息、普通用戶信息、書籍信息、書籍外借信息表。</p><p>  4.1.1 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計</p><p>  在需求分析階段已完成該系統(tǒng)所有的數(shù)據(jù)分析。根據(jù)該階段所建立的概念模型,已經(jīng)得出滿足系統(tǒng)設(shè)計要求的幾個關(guān)系描述,該階段的主要工作就是把前一階段的成果轉(zhuǎn)化為具體的數(shù)

62、據(jù)庫。</p><p>  管理員用戶有用戶名和密碼兩個屬性,通過這兩個屬性來確定管理員用戶的身份是否合法,其中ID為主鍵,其E-R圖如下:</p><p>  圖4.1 管理員E-R圖</p><p>  學(xué)生用戶有用戶名、密碼身份證號、入學(xué)年份、性別、所在學(xué)院名稱等屬性,通過這些屬性,來確認學(xué)生信息表的信息,其中主鍵為ID,其E-R圖如下:</p>

63、<p>  圖4.2 學(xué)生用戶E-R圖</p><p>  書籍信息表,是用來存儲書籍的基本信息,其數(shù)星星包括書名、作者名、書籍位置、出版社名稱、所屬科目、是否借出、最大借閱時間等,其中自動分配的ID和書名作為聯(lián)合主鍵,其E-R圖如下:</p><p>  圖4.3 書籍信息E-R圖</p><p>  外借書籍信息表是用來存儲外借書籍的有關(guān)信息,通過此

64、表格,來獲取該外借書籍的基本狀態(tài),其屬性有書籍編號、書籍名、書籍作者、最大外借時間、實際外借時間、外借時間、借閱者ID,其E-R圖如下:</p><p>  圖4.4書籍外借信息E-R圖</p><p>  對于各個實體之間的關(guān)系E-R圖如下:</p><p>  圖 4.5 實體關(guān)系圖</p><p>  4.1.2 數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計&l

65、t;/p><p>  依據(jù)數(shù)據(jù)庫的原理,并結(jié)合以上E-R圖,經(jīng)過轉(zhuǎn)化,即可進行數(shù)據(jù)庫的物理設(shè)計?;谝陨蠑?shù)據(jù)庫的邏輯設(shè)計,考慮程序設(shè)計的簡易性,同時考慮題目的時間,該系統(tǒng)的數(shù)據(jù)庫采用Oracle簡易版本建立一個數(shù)據(jù)庫,在其下創(chuàng)建4個數(shù)據(jù)表,其結(jié)構(gòu)分別如下各表:</p><p>  表4-1 數(shù)據(jù)表清單</p><p>  表4-2 管理員用戶信息表</p>

66、<p>  表4-3 普通用戶信息表</p><p>  表4-4 書籍信息表</p><p>  表4-5 外借書籍信息表</p><p>  第5章 模塊開發(fā)及編碼實現(xiàn)</p><p>  5.1 服務(wù)器端的設(shè)計---搭建java web服務(wù)器</p><p>  本軟件是C/S結(jié)構(gòu)的系統(tǒng),因此要先搭建

67、服務(wù)器端,利用Java EE中的servlet來提供服務(wù),并將其部署在Tomcat下。需要解決的是創(chuàng)建不同的servlet來提供不同的服務(wù)。</p><p>  Web服務(wù)的名稱:LibraryService</p><p>  在MyEclipse中新建一個web project,取名為LibraryService,其結(jié)構(gòu)如下圖:</p><p>  圖5.1 服

68、務(wù)器端代碼結(jié)構(gòu)</p><p>  5.2 連接數(shù)據(jù)庫模塊</p><p>  com.briup.jdbc是CVM模式中的低層,數(shù)據(jù)庫層,包中的類是用來連接數(shù)據(jù)庫和操作數(shù)據(jù)庫的,其中JDBCConnectionFactory.java用來連接數(shù)據(jù)庫的,連接數(shù)據(jù)庫的三個變量為:</p><p>  private static String url;</p&g

69、t;<p>  private static String userName;</p><p>  private static String userPwd;</p><p>  連接數(shù)據(jù)庫需要url,username,userPassword這三個值,而這三個值放入到j(luò)dbcinfo中,通過Properties來獲取,部分代碼如下:</p><p>

70、;  Properties pro = new Properties();</p><p>  pro.load(new FileInputStream("E:\Myeclipse6.5 workspace\</p><p>  LibraryService\src\com\briup\jdbc\ jdbcinfo"));</p><p>  u

71、rl=pro.getProperty(“url”);</p><p>  userName = pro.getProperty(“userName”);</p><p>  userPwd = pro.getProperty(“userPwd”);</p><p>  new oracle.jdbc.driver.OracleDriver();</p>

72、<p>  Connection conn = DriverManager.getConnection(url,userName,userPwd);</p><p>  5.3 服務(wù)器功能模塊</p><p>  com.briup.dao是CVM模式中的Dao層,為service提供服務(wù),封裝對數(shù)據(jù)庫的操作的方法。</p><p>  com.briu

73、p.servlet包中就各個不同的Servlet類,其具體情況如下:</p><p>  5.3.1 注冊模塊</p><p>  提供用戶注冊servlet為RegisterServlet,重寫其doPost()和doGet()方法,該servlet是用來處理學(xué)生用戶注冊請求。注冊的參數(shù)有username、password、indentityid、year、gender、college,

74、其url為:</p><p>  http://192.168.19.1:8088/LibraryService/servlet/registerservlet</p><p><b>  部分代碼如下:</b></p><p>  PrintWriter out = response.getWriter();</p><p

75、>  String username = request.getParameter("username");</p><p>  String password = request.getParameter("password");</p><p>  String indentityid = request.getParameter(&quo

76、t;indentityid");</p><p>  String year = request.getParameter("year");</p><p>  String gender = request.getParameter("gender");</p><p>  String college = req

77、uest.getParameter("college");</p><p>  LibraryDao dao =new LibraryDaoImpl();</p><p>  try {User user1=(User)dao.findByUsername(username);</p><p>  if(user1!=null)</p>

78、;<p>  {xml=MakeXML.makeXml("該用戶名已存在了",false);</p><p><b>  }else{</b></p><p>  User user=new User();</p><p>  user.setUsername(username);</p><

79、;p>  user.setPassword(password);</p><p>  user.setIndentityid(indentityid);</p><p>  user.setYear(year);</p><p>  user.setGender(gender);</p><p>  user.setCollege(co

80、llege);</p><p>  dao.save(user);</p><p>  xml=MakeXML.makeXml("恭喜您注冊成功了",true);</p><p><b>  }</b></p><p>  5.3.2 登錄模塊</p><p>  提供用戶登錄

81、的servlet為LoginServlet,重寫其doPost()和doGet()方法,該servlet是用來處理學(xué)生用戶和管理員登錄的請求。登錄的參數(shù)有username、password,其url為:</p><p>  http://192.168.19.1:8088/LibraryService/servlet/loginservlet</p><p><b>  部分代碼

82、如下:</b></p><p>  PrintWriter out = response.getWriter();</p><p>  System.out.println("welcome clientlogin");</p><p>  String xml=null;</p><p><b> 

83、 //獲得帳號</b></p><p>  String flag=request.getParameter("flag").trim();</p><p>  String username = </p><p>  request.getParameter("username").trim();</p&g

84、t;<p>  String password=</p><p>  (String)request.getParameter("password").trim();</p><p>  LibraryDao dao=new LibraryDaoImpl();</p><p>  if(flag.equals("norma

85、l")){</p><p>  if(username!=null)</p><p><b>  {</b></p><p><b>  try {</b></p><p>  com.briup.pojo.User user=dao.findByUsername(username);&l

86、t;/p><p>  if(user!=null)</p><p><b>  {</b></p><p>  if(user.getPassword().equalsIgnoreCase(password))</p><p><b>  {</b></p><p>  xml=

87、MakeXML.makeXml("恭喜您登錄成功了",true);</p><p><b>  }else{</b></p><p>  xml=MakeXML.makeXml("密碼不對",false);</p><p><b>  }</b></p><p&g

88、t;<b>  }else{</b></p><p>  xml=MakeXML.makeXml("用戶名不正確",false);</p><p><b>  }</b></p><p>  } catch (Exception e) {</p><p>  // TODO Au

89、to-generated catch block</p><p>  System.out.println("網(wǎng)絡(luò)異常");</p><p>  out.println("<font color='red' size='5'>");</p><p>  out.println(&qu

90、ot;網(wǎng)絡(luò)異常</font>");</p><p><b>  }</b></p><p><b>  }</b></p><p>  }else if(flag.equals("admin")){</p><p><b>  try {</

91、b></p><p>  Admin admin=dao.findByAdminname(username);</p><p>  if(admin!=null)</p><p><b>  {</b></p><p>  if(admin.getPassword().equals(password))</p

92、><p><b>  {</b></p><p>  xml=MakeXML.makeXml("恭喜您登錄成功了",true);</p><p><b>  }else{</b></p><p>  xml=MakeXML.makeXml("密碼不對",false

93、);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else{</b></p><p>  xml=MakeXML.makeXml("用戶名不存在",false);</p><

94、p><b>  }</b></p><p>  } catch (Exception e) {</p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p><b>  }</b><

95、/p><p>  5.3.3 書籍查詢模塊</p><p>  提供特定書籍查詢servlet為findBookServlet,重寫其doPost()和doGet()方法,該servlet是用來處理學(xué)生用戶查詢特定書籍的請求。查詢書籍參數(shù)有bookname、bookauthor,其url為:</p><p>  http://192.168.19.1:8088/Libr

96、aryService/servlet/findbooksservlet</p><p><b>  部分代碼如下:</b></p><p>  String bookname=request.getParameter("bookname").trim();</p><p>  String authorname=reques

97、t.getParameter("authorname").trim();</p><p>  String status=request.getParameter("status").trim();</p><p>  //status 為yes表示被借出了 為no表示沒被借出沒</p><p>  System.out.pr

98、intln("----hello i am in findBooksServlet----");</p><p>  String xml=null;</p><p>  List list=null;</p><p>  LibraryDao dao=new LibraryDaoImpl();</p><p>  if(

99、status.equals(""))</p><p><b>  {</b></p><p><b>  try {</b></p><p>  list=dao.findBookByName(bookname, authorname);</p><p>  if(list!=n

100、ull)</p><p><b>  {</b></p><p>  xml=MakeXML.makeXml(list,list.size()+"");</p><p><b>  }</b></p><p><b>  else{</b></p>

101、;<p>  xml=MakeXML.makeXml(list,"抱歉圖書館沒有該書了");</p><p><b>  }</b></p><p>  } catch (Exception e) {</p><p>  // TODO Auto-generated catch block</p>

102、<p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }else{</b></p><p><b>  try {</b></p><p>  list=dao.findBookByName(boo

103、kname, authorname,status);</p><p>  if(list!=null)</p><p><b>  {</b></p><p>  xml=MakeXML.makeXml(list,list.size()+"");</p><p><b>  }</b&

104、gt;</p><p><b>  else{</b></p><p>  xml=MakeXML.makeXml(list,"抱歉圖書館沒有該書了");</p><p><b>  }</b></p><p>  } catch (Exception e) {</p>

105、;<p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  5.3.4 特定用戶查詢模塊</p><p>  提供特定用戶查詢servlet為findUserS

106、ervlet,重寫其doPost()和doGet()方法,該servlet是用來處理管理員用戶查詢特定學(xué)生用戶信息的請求。管理員查詢特定學(xué)生用戶參數(shù)有username,其url為:</p><p>  http://192.168.19.1:8088/LibraryService/servlet/finduserservlet</p><p><b>  部分代碼如下:</

107、b></p><p>  PrintWriter out = response.getWriter();</p><p>  String username = </p><p>  request.getParameter("username").trim();</p><p>  String xml=null;

108、</p><p>  LibraryDao dao=new LibraryDaoImpl();</p><p><b>  try {</b></p><p>  com.briup.pojo.User user=dao.findByUsername(username);</p><p>  if(user!=null)

109、</p><p><b>  {</b></p><p><b>  try {</b></p><p>  xml=MakeXML.makeXml(user,"");</p><p>  } catch (Exception e) {</p><p> 

110、 // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }else{</b></p><p><b>  try {</b><

111、/p><p>  xml=MakeXML.makeXml("密碼不對",false);</p><p>  } catch (Exception e) {</p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p>

112、<p><b>  }</b></p><p><b>  }</b></p><p>  } catch (DataAccessException e) {</p><p>  // TODO Auto-generated catch block</p><p>  e.printSt

113、ackTrace();</p><p><b>  }</b></p><p>  5.3.5 查詢所有用戶模塊</p><p>  提供所有用戶查詢servlet為findAllUserServlet,重寫其doPost()和doGet()方法,該servlet是用來處理管理員用戶查詢所有學(xué)生用戶信息的請求。查詢所有學(xué)生用戶信息不需要提供任何

114、參數(shù),只需要點擊查詢所有按鈕便可以查詢出所有,其url為:</p><p>  http://192.168.19.1:8088/LibraryService/servlet/findalluserservlet</p><p><b>  部分代碼如下:</b></p><p>  PrintWriter out = response.get

115、Writer();</p><p>  String xml=null;</p><p>  List list=null;</p><p>  LibraryDao dao=new LibraryDaoImpl();</p><p><b>  try {</b></p><p>  list=

116、dao.findAlluser();</p><p>  xml=MakeXML.makeXml(list,"");</p><p>  } catch (Exception e) {</p><p>  // TODO Auto-generated catch block</p><p><b>  try {

117、</b></p><p>  xml=MakeXML.makeXml("網(wǎng)絡(luò)異常",false);</p><p>  } catch (Exception e1) {</p><p>  // TODO Auto-generated catch block</p><p>  e1.printStackTra

118、ce();</p><p><b>  }</b></p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  5.3.6 添加書籍模塊</p><p>  提供管理員添加書籍servlet為saveBookSer

119、vlet,重寫其doPost()和doGet()方法,該servlet是用來處理管理員用戶對新書籍進行添加上架的請求。對需要上架處理的書籍需要提供參數(shù)有書籍名、書籍作者、書籍所屬科目、書籍所在位置,書籍出版社名字、最大借閱時間等參數(shù),其url為:</p><p>  http://192.168.19.1:8088/LibraryService/servlet/savebookservlet</p>

120、<p><b>  部分代碼如下:</b></p><p>  PrintWriter out = response.getWriter();</p><p>  String bookname=request.getParameter("bookname").trim();</p><p>  String a

121、uthorname=request.getParameter("authorname").trim();</p><p>  String phname=request.getParameter("phname").trim();</p><p>  String location=request.getParameter("locatio

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論