版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 畢業(yè)設(shè)計基于Android平臺的圖書館管理系統(tǒng)手機(jī)客戶端開發(fā)摘要傳統(tǒng)的WEB應(yīng)用只能在PC上使用,不能隨時隨地使用。為了解決這個問題,基于Android平臺的圖書管理系統(tǒng)客戶端應(yīng)運(yùn)而生。本設(shè)計闡述了Android平臺下圖書館管理系統(tǒng)的設(shè)計與實現(xiàn)過程,其目的是讓人們能夠在基于Google Android平臺的移動設(shè)備上享受傳統(tǒng)圖書館管理系統(tǒng)在WEB上的基本功能。該系統(tǒng)采用C/S結(jié)構(gòu),MVC軟件開發(fā)模式,使用android布局技術(shù)完成UI設(shè)計,基于Java語言開發(fā),并在不同類型的設(shè)備模擬器上進(jìn)行測試。該系統(tǒng)實現(xiàn)了用戶注冊、登錄、圖書查詢、學(xué)生用戶管理和圖書管理等功能。“操作簡單,功能實用”是本軟
2、件設(shè)計的核心理念,本系統(tǒng)力求打造最佳的用戶體驗。關(guān)鍵詞:圖書館管理系統(tǒng);安卓;客戶;數(shù)據(jù)庫設(shè)計;計算機(jī)網(wǎng)絡(luò)服務(wù)器目錄 TOC o 1-3 h z u HYPERLINK l _RefHeading_Toc327343955 摘要I HYPERLINK l _RefHeading_Toc327343956 AbstractII HYPERLINK l _RefHeading_Toc327343957 第1章前言1 HYPERLINK l _RefHeading_Toc327343958 1.1 課題研究的目的與意義1 HYPERLINK l _RefHeading_Toc327343959 1.
3、2 課題的現(xiàn)狀1 HYPERLINK l _RefHeading_Toc327343960 1.3 課題的容1 HYPERLINK l _RefHeading_Toc327343961 第2章軟件設(shè)計與開發(fā)工具介紹3 HYPERLINK l _RefHeading_Toc327343962 2.1 總體設(shè)計3 HYPERLINK l _RefHeading_Toc327343963 2.2 系統(tǒng)結(jié)構(gòu)3 HYPERLINK l _RefHeading_Toc327343964 2.3 開發(fā)工具介紹和關(guān)鍵技術(shù)3 HYPERLINK l _RefHeading_Toc327343965 2.3.1
4、Eclipse的介紹3 HYPERLINK l _RefHeading_Toc327343966 2.3.2 MyEclipse與Tomcat介紹6 HYPERLINK l _RefHeading_Toc327343967 2.3.3 關(guān)鍵技術(shù)介紹7 HYPERLINK l _RefHeading_Toc327343968 第3章系統(tǒng)功能設(shè)計8 HYPERLINK l _RefHeading_Toc327343969 3.1 前臺管理8 HYPERLINK l _RefHeading_Toc327343970 3.1.1 注冊8 HYPERLINK l _RefHeading_Toc32734
5、3971 3.1.2 用戶登錄8 HYPERLINK l _RefHeading_Toc327343972 3.1.3 圖書查詢8 HYPERLINK l _RefHeading_Toc327343973 3.1.4 用戶管理9 HYPERLINK l _RefHeading_Toc327343974 3.1.5 圖書管理9 HYPERLINK l _RefHeading_Toc327343975 3.2 后臺管理9 HYPERLINK l _RefHeading_Toc327343976 3.2.1 注冊管理9 HYPERLINK l _RefHeading_Toc327343977 3.2
6、.2登錄管理9 HYPERLINK l _RefHeading_Toc327343978 3.2.3 圖書查詢管理10 HYPERLINK l _RefHeading_Toc327343979 3.2.4 用戶管理10 HYPERLINK l _RefHeading_Toc327343980 3.2.5 圖書管理10 HYPERLINK l _RefHeading_Toc327343981 第4章數(shù)據(jù)庫結(jié)構(gòu)設(shè)計11 HYPERLINK l _RefHeading_Toc327343982 4.1 服務(wù)器端數(shù)據(jù)庫設(shè)計11 HYPERLINK l _RefHeading_Toc327343983
7、4.1.1 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計11 HYPERLINK l _RefHeading_Toc327343984 4.1.2數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計13 HYPERLINK l _RefHeading_Toc327343985 第5章模塊開發(fā)與編碼實現(xiàn)15 HYPERLINK l _RefHeading_Toc327343986 5.1 服務(wù)器端的設(shè)計-搭建java web服務(wù)器15 HYPERLINK l _RefHeading_Toc327343987 5.2 連接數(shù)據(jù)庫模塊15 HYPERLINK l _RefHeading_Toc327343988 5.3 服務(wù)器功能模塊16 HYPERLINK
8、 l _RefHeading_Toc327343989 5.3.1 注冊模塊16 HYPERLINK l _RefHeading_Toc327343990 5.3.2 登錄模塊17 HYPERLINK l _RefHeading_Toc327343991 5.3.3 書籍查詢模塊18 HYPERLINK l _RefHeading_Toc327343992 5.3.4 特定用戶查詢模塊19 HYPERLINK l _RefHeading_Toc327343993 5.3.5 查詢所有用戶模塊20 HYPERLINK l _RefHeading_Toc327343994 5.3.6 添加書籍模塊
9、21 HYPERLINK l _RefHeading_Toc327343995 5.4 客戶端的設(shè)計-設(shè)計ANDROID UI界面22 HYPERLINK l _RefHeading_Toc327343996 5.5 具體功能模塊23 HYPERLINK l _RefHeading_Toc327343997 5.5.1 注冊界面23 HYPERLINK l _RefHeading_Toc327343998 5.5.2 登錄界面26 HYPERLINK l _RefHeading_Toc327343999 5.5.3 學(xué)生用戶書籍查詢界面28 HYPERLINK l _RefHeading_To
10、c327344000 5.5.4 管理員界面29 HYPERLINK l _RefHeading_Toc327344001 5.5.5 管理學(xué)生用戶界面30 HYPERLINK l _RefHeading_Toc327344002 5.5.6 管理圖書界面31 HYPERLINK l _RefHeading_Toc327344003 5.5.7 圖書增加界面32 HYPERLINK l _RefHeading_Toc327344004 第6章系統(tǒng)測試34 HYPERLINK l _RefHeading_Toc327344005 6.1 用戶注冊測試34 HYPERLINK l _RefHead
11、ing_Toc327344006 6.2 用戶登錄測試34 HYPERLINK l _RefHeading_Toc327344007 6.3 圖書查詢測試36 HYPERLINK l _RefHeading_Toc327344008 6.4用戶管理測試36 HYPERLINK l _RefHeading_Toc327344009 6.5 書籍管理測試37 HYPERLINK l _RefHeading_Toc327344010 總 結(jié)39 HYPERLINK l _RefHeading_Toc327344011 參考文獻(xiàn)41 HYPERLINK l _RefHeading_Toc3273440
12、12 附錄一核心代碼42 HYPERLINK l _RefHeading_Toc327344013 附錄二外文文獻(xiàn)(原文)43 HYPERLINK l _RefHeading_Toc327344014 附錄三外文文獻(xiàn)(譯文)52 HYPERLINK l _RefHeading_Toc327344015 致60第一章引言1.1研究的目的和意義移動互聯(lián)網(wǎng)時代的到來,預(yù)示著一個全新的時代開始了。所謂移動互聯(lián)網(wǎng),就是移動通信和互聯(lián)網(wǎng)的融合,移動設(shè)備(包括手機(jī)和上網(wǎng)本)可以隨時隨地訪問互聯(lián)網(wǎng)資源和應(yīng)用。智能手機(jī)是移動互聯(lián)網(wǎng)時代標(biāo)志性的客戶端工具。它不同于傳統(tǒng)的手機(jī)。它就像一臺“小電腦”,擁有獨(dú)立的操作系
13、統(tǒng),可以自由安裝和卸載軟件,具有強(qiáng)大的計算和存儲能力,并通過移動通信網(wǎng)絡(luò)進(jìn)行無線網(wǎng)絡(luò)接入。隨著移動終端的快速發(fā)展,傳統(tǒng)的WEB應(yīng)用出現(xiàn)在移動終端是一個大趨勢?;贏ndroid平臺的圖書館管理系統(tǒng)手機(jī)客戶端很好的體現(xiàn)了這一趨勢。在Android平臺下開發(fā)圖書管理系統(tǒng)可以為用戶提供方便,用戶可以通過它隨時隨地了解系統(tǒng)的實時信息,從而實現(xiàn)信息的實時性。通過在Android平臺下開發(fā)圖書管理系統(tǒng)的客戶端,補(bǔ)充了傳統(tǒng)的WEB應(yīng)用。同時,對于學(xué)校的圖書管理系統(tǒng)來說,手機(jī)是學(xué)生必備的物品。手機(jī)客戶端形式的圖書館管理系統(tǒng)可以更貼近學(xué)生的生活習(xí)慣,適合學(xué)生各年齡段的習(xí)慣,這將促進(jìn)學(xué)生更多地獲取圖書館信息。1.
14、2主體的地位目前國內(nèi)基于Android平臺的圖書館管理系統(tǒng)客戶端不成熟,大部分圖書館管理系統(tǒng)出現(xiàn)在傳統(tǒng)的WEB應(yīng)用上。在這種環(huán)境下,基于Android平臺的圖書管理系統(tǒng)客戶端屬于一個全新的應(yīng)用。作為一個不成熟的應(yīng)用,圖書館管理系統(tǒng)大多出現(xiàn)在一個學(xué)習(xí)android開發(fā)的項目中,作為學(xué)習(xí)中的一個練習(xí)。目前大部分的網(wǎng)絡(luò)應(yīng)用都是傳統(tǒng)的WEB應(yīng)用,但是在Android手機(jī)飛速發(fā)展的今天,傳統(tǒng)的WEB應(yīng)用已經(jīng)不能滿足人們隨時隨地體驗網(wǎng)絡(luò)應(yīng)用的想法,所以會有越來越多的應(yīng)用出現(xiàn)在移動終端,其發(fā)展速度也會越來越快。作為傳統(tǒng)的WEB應(yīng)用,學(xué)校圖書館管理系統(tǒng)也將在手機(jī)客戶端得到應(yīng)用。1.3主體的能力于是,手機(jī)上出現(xiàn)
15、了大量的應(yīng)用。基于Android平臺的圖書館管理系統(tǒng)手機(jī)客戶端就是根據(jù)這種形式開發(fā)的。它是一個開放的圖書館管理系統(tǒng),具有傳統(tǒng)的網(wǎng)絡(luò)圖書館管理系統(tǒng)的大部分功能。整個系統(tǒng)分為前端界面管理和后端服務(wù)器管理兩個部分,又分為用戶管理、圖書管理和信息管理三個部分。在前臺管理中,用戶注冊、登錄、查詢特定書籍等功能;后臺管理模塊負(fù)責(zé)控制前端界面管理的所有功能;這個系統(tǒng)有兩種類型:學(xué)生用戶和管理員。兩種類型的用戶使用同一個平臺,但是權(quán)限不同。學(xué)生只能注冊、查詢圖書等功能;管理員擁有最高權(quán)限,可以刪除已畢業(yè)的學(xué)生用戶賬號,查詢學(xué)生用戶信息,實時更新圖書館新書,發(fā)布圖書館最新信息。這個圖書管理系統(tǒng)可以適用于各類圖書
16、館,具有很好的可操作性,可以隨時查詢你需要的圖書信息。只要你的智能手機(jī)上安裝了該系統(tǒng)的客戶端,該系統(tǒng)極大地方便了學(xué)生的圖書查詢。本系統(tǒng)采用C/S結(jié)構(gòu),后臺服務(wù)器使用Servlet編寫服務(wù)器,Tomcat發(fā)布服務(wù)。前臺客戶端環(huán)境使用ANDROID控件。JDBC調(diào)用Oracle數(shù)據(jù)庫實現(xiàn)手機(jī)客戶端和服務(wù)器之間的數(shù)據(jù)傳輸。第2章軟件設(shè)計和開發(fā)工具介紹為了使軟件開發(fā)順利進(jìn)行,使開發(fā)人員對系統(tǒng)各模塊的性能、系統(tǒng)接口、系統(tǒng)開發(fā)運(yùn)行環(huán)境、計算機(jī)部門的邏輯和物理流程有更清晰的認(rèn)識,更有利于源程序的開發(fā),對系統(tǒng)的總體設(shè)計、系統(tǒng)結(jié)構(gòu)設(shè)計和開發(fā)工具以及關(guān)鍵技術(shù)進(jìn)行了詳細(xì)的描述。2.1總體設(shè)計從設(shè)計者的角度來看,基于
17、ANDROID平臺的圖書管理系統(tǒng)的客戶端分為兩類:學(xué)生用戶和管理員。功能包括注冊、登錄、密碼檢索、圖書查詢、圖書實時更新和一般用戶管理六個部分。其中,系統(tǒng)管理中的學(xué)生用戶權(quán)限包括注冊、登錄、密碼找回和圖書查詢四個模塊。管理員的權(quán)限是除了學(xué)生用戶的權(quán)限,還有實時更新圖書信息,管理學(xué)生用戶等模塊。從用戶的角度來說,分為前臺和后臺管理兩部分。后臺管理模塊是該系統(tǒng)的關(guān)鍵部分之一,是系統(tǒng)維護(hù)和信息管理的平臺。根據(jù)實際需要,本系統(tǒng)后臺管理的用戶分為兩類:管理員和學(xué)生用戶。這兩類用戶使用的系統(tǒng)管理平臺都在同一個平臺上,只是執(zhí)行權(quán)限不同。2.2系統(tǒng)結(jié)構(gòu)本系統(tǒng)的整體邏輯結(jié)構(gòu)為C/S結(jié)構(gòu),結(jié)構(gòu)圖如圖2-1所示:圖
18、2.1C/S結(jié)構(gòu)圖2.3開發(fā)工具和關(guān)鍵技術(shù)介紹2 . 3 . 1 eclipse簡介Eclipse是一個開源的、基于Java的可擴(kuò)展開發(fā)平臺。它本身只是一個框架,一套通過插件組件構(gòu)建開發(fā)環(huán)境的服務(wù)。幸運(yùn)的是,Eclipse附帶了一組標(biāo)準(zhǔn)插件,包括Java開發(fā)工具包(JDK)。Eclipse的開發(fā)歷史,版本代碼平臺版本主要版本發(fā)布日期SR1發(fā)布日期SR2發(fā)布日期如下:表2-1 Eclipse的版本號版本代碼平臺版本主要發(fā)布日期SR1的發(fā)行日期2 SR2的發(fā)布日期木衛(wèi)四3.22006年6月26日不適用的不適用的歐羅巴3.32007年6月27日2007年9月28日2008年2月29日木衛(wèi)三3.420
19、08年6月25日2006年9月24日2009年2月25日“伽利略”號3.52009年6月24日2006年9月25日2010年2月26日艾里奧斯3.62006年6月23日2006年9月24日2011年2月25日靛藍(lán)3.72006年6月22日2006年9月23日2012年2月24日J(rèn)uno(已安排)3.8和4.22006年6月27日2006年9月28日2013年2月22日開普勒4.32006年6月26日2006年9月27日2014年2月28日Eclipse是一個開源軟件開發(fā)項目,致力于為高度集成的工具開發(fā)提供一個全功能和商業(yè)質(zhì)量的工業(yè)平臺。主要由三個項目組成:Eclipse項目、Eclipse工具
20、項目和Eclipse技術(shù)項目,包括四個部分Eclipse平臺、JDT、CDT和PDE。JDT支持Java開發(fā),CDT支持C開發(fā),PDE支持插件開發(fā),Eclipse平臺是一個開放的可擴(kuò)展的IDE,提供了一個通用的開發(fā)平臺。它為構(gòu)建模塊以及構(gòu)建和運(yùn)行集成軟件開發(fā)工具提供了基礎(chǔ)。Eclipse平臺允許工具構(gòu)建者獨(dú)立開發(fā)與其他人的工具無縫集成的工具,這樣就不需要區(qū)分一個工具功能在哪里結(jié)束,另一個工具功能在哪里開始。Android項目是在Eclipse工具上寫的。要寫android項目,首先需要在Eclipse上安裝ADT插件,然后指定SDK所在的路徑,然后就可以創(chuàng)建Android虛擬機(jī)了。在Eclip
21、se下創(chuàng)建虛擬機(jī)的步驟如下:安裝ADT插件在Eclipse中點擊菜單欄上的Help,在Help中選擇Install NewSoftware選項,會出現(xiàn)如下界面:圖2.2ADT安裝步驟界面指定ADT路徑后,您可以安裝ADT插件。導(dǎo)入AndroidSDK安裝ADT插件后,點擊Eclipse菜單欄,在Windows下找到preperence,點擊Enter,出現(xiàn)如下界面:圖2.3 AndroidSDK安裝界面在左側(cè)選項中選擇Android,在SDK位置下導(dǎo)入AndroidSDK路徑,點擊應(yīng)用即可導(dǎo)入所有版本的Android。創(chuàng)建虛擬機(jī)安裝ADT并成功導(dǎo)入androidSDK后,可以在菜單欄中找到Wi
22、ndows下的AVD管理選項。點擊進(jìn)入,會有新的安卓虛擬機(jī)界面。在創(chuàng)建界面設(shè)置好虛擬機(jī)參數(shù)后,點擊確定,創(chuàng)建一個Android虛擬機(jī)。創(chuàng)建虛擬機(jī)后,單擊Start運(yùn)行一個android虛擬機(jī)。虛擬機(jī)運(yùn)行成功的界面如下:圖2.4 Android虛擬機(jī)視圖虛擬機(jī)模擬了android智能手機(jī)的界面,通過操作虛擬機(jī)可以體驗android智能手機(jī)的一些應(yīng)用。同時,虛擬機(jī)是開發(fā)的android應(yīng)用運(yùn)行的地方,它提供基本的人機(jī)交互功能。2 . 3 . 2 MyEclipse和Tomcat的介紹MyEclipse是一個優(yōu)秀的Eclipse插件集合,用于開發(fā)Java和J2EE。MyEclipse Enterpr
23、ise Workbench(簡稱MyEclipse)是EclipseIDE的擴(kuò)展。有了它,我們可以大大提高數(shù)據(jù)庫和JavaEE的開發(fā)和發(fā)布,以及與應(yīng)用服務(wù)器的集成的工作效率。它是一個JavaEE集成開發(fā)環(huán)境,功能豐富,包括完整的編碼、調(diào)試、測試和發(fā)布功能。它支持HTML、Struts、JSP、JavaScript、Hibernate、MyEclipse、CSS、Spring和SQL,功能非常強(qiáng)大,支持面也很廣,尤其是針對各種開源產(chǎn)品。在結(jié)構(gòu)上,MyEclipse的特征可分為7類:1.javaee模型2.Web開發(fā)工具3.e開發(fā)工具4.應(yīng)用服務(wù)器的連接器5.JavaEE項目部署服務(wù)6.數(shù)據(jù)庫服務(wù)
24、7.MyEclipse集成幫助對于以上每一個功能類別,Eclipse中都有相應(yīng)的功能組件,并且通過一系列插件來實現(xiàn)。MyEclipse結(jié)構(gòu)的模塊化允許我們在不影響其他模塊的情況下獨(dú)立擴(kuò)展和升級任何模塊。簡單來說,MyEclipse是Eclipse的一個插件,也是一個強(qiáng)大的JavaEE集成開發(fā)環(huán)境,支持代碼編寫、配置、測試和調(diào)試。在MyEclipse6.0之前,需要先安裝Eclipse。安裝MyEclipse6.0版或更高版本時不需要安裝Eclipse。這個系統(tǒng)是基于C/S架構(gòu)的,需要在MyEclipse上創(chuàng)建一個服務(wù)器,使用Java EE中的servlet提供服務(wù),部署在Tomcat下。解決方
25、案是創(chuàng)建不同的servlet來提供不同的服務(wù)。Tomcat是Apache軟件基金會雅加達(dá)項目中的核心項目,由Apache、Sun等公司和個人共同開發(fā)。感謝Sun的參與和支持,最新的Servlet和JSP規(guī)范總能在Tomcat中得到體現(xiàn)。Tomcat 5支持最新的Servlet 2.4和JSP 2.0規(guī)范。Tomcat因其技術(shù)先進(jìn)、性能穩(wěn)定、免費(fèi)而深受Java愛好者的喜愛,并得到一些軟件開發(fā)者的認(rèn)可。它已經(jīng)成為一個流行的Web應(yīng)用服務(wù)器。最新版本是7.0。Tomcat很受程序員的歡迎,因為它占用系統(tǒng)資源少,擴(kuò)展性好,支持開發(fā)應(yīng)用系統(tǒng)常用的功能,比如負(fù)載均衡、服務(wù)等。而且它還在不斷的改進(jìn)和完善,任
26、何感興趣的程序員都可以對它進(jìn)行修改或者添加新的功能。Tomcat是一個輕量級的應(yīng)用服務(wù)器,廣泛應(yīng)用于中小型系統(tǒng),并發(fā)用戶不多的時候。它是開發(fā)和調(diào)試JSP程序的首選。對于初學(xué)者來說,可以認(rèn)為在一臺機(jī)器上配置了Apache server,就可以用它來響應(yīng)對HTML頁面的訪問請求。實際上,tomcat是Apache server的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)Apache Tomcat運(yùn)行Tomcat時,它實際上是作為一個獨(dú)立于Apache的進(jìn)程運(yùn)行的。Tomcat實際上運(yùn)行JSP頁面和Servlet。此外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁面的功能,同時也是S
27、ervlet和JSP容器。獨(dú)立Servlet容器是Tomcat的默認(rèn)模式。但是,Tomcat處理靜態(tài)HTML的能力不如Apache server。目前Tomcat的最新版本是7.0.27發(fā)布。2.3.3關(guān)鍵技術(shù)介紹該軟件采用java作為開發(fā)語言,布局和數(shù)據(jù)存儲是開發(fā)該軟件的關(guān)鍵技術(shù)。布局是用來設(shè)計用戶界面的,用戶界面的設(shè)計是否美觀合理直接影響用戶體驗。所以,用好布局技術(shù)直接關(guān)系到用戶,而數(shù)據(jù)存儲技術(shù)記錄了用戶所有的操作數(shù)據(jù),以及用戶需要提取的數(shù)據(jù)。在android中,軟件UI通常使用xml技術(shù)設(shè)計,而xml中控件的位置和狀態(tài)與布局的使用密不可分。android中常用的布局有五種,分別是:Abs
28、oluteLayout、LinearLayout、RelativeLayout、FrameLayout和TableLayout。由于使用了布局,而且布局之間可以相互嵌套,這使得android軟件UI的設(shè)計非常靈活。即使是一些非常復(fù)雜的界面設(shè)計,只要布局使用合理,也會很容易開發(fā)。Android數(shù)據(jù)存儲技術(shù)主要包括:文件存儲、preference、sqlite、ContentProvider和網(wǎng)絡(luò)存儲。文件存儲是以流的形式讀寫文件,流可以是文本形式,也可以是二進(jìn)制形式。要在java語言中使用stream,寫入文件的對象必須序列化。sqlite是嵌入式移動設(shè)備中常用的輕量級數(shù)據(jù)庫,可以看作是計算機(jī)上
29、使用的sql server和oracle數(shù)據(jù)庫。在本系統(tǒng)中,Oracle數(shù)據(jù)庫用于存儲圖書館的基本信息。第三章系統(tǒng)功能設(shè)計本系統(tǒng)采用C/S模式開發(fā),客戶端和服務(wù)器獨(dú)立分離,形成了前臺管理和后臺管理的分離。前臺管理關(guān)注用戶交互是否簡單,后臺管理關(guān)注功能邏輯和與數(shù)據(jù)庫數(shù)據(jù)交互的功能。3.1前臺管理前臺所有功能的功能流程圖如下:圖3.1前臺客戶端流程圖注冊用戶通過手機(jī)客戶端主界面的注冊按鈕注冊新的學(xué)生用戶。注冊用戶的信息通過服務(wù)器連接到數(shù)據(jù)庫,數(shù)據(jù)庫中的用戶表會生成你的注冊信息,同時手機(jī)客戶端會提示注冊成功。用戶登錄登錄用戶分為兩種:管理員和學(xué)生用戶??梢酝ㄟ^登錄界面中選擇的身份登錄,服務(wù)器根據(jù)選擇
30、的信息選擇數(shù)據(jù)庫中的數(shù)據(jù)表進(jìn)行匹配。如果用戶名和密碼正確,登錄將會成功。圖書查詢在查詢界面輸入要查詢的圖書的書名和作者名,通過服務(wù)器端的查詢數(shù)據(jù)庫返回所查詢圖書的信息。圖書信息包括:書名、作者、姓名、是否已收到、圖書剩余數(shù)量等。在圖書查詢功能中,使用了一個ANDROID自動補(bǔ)全文本控件,可以通過你輸入的查詢信息,用你輸入的文字列出圖書的書名,方便你檢索。通過這種控制,大大提高了用戶檢索圖書的效率,滿足了模糊查詢的功能,使用戶查詢圖書方便快捷。用戶管理用戶管理模塊是管理員對學(xué)生用戶賬號的管理。由于一些特殊原因,比如學(xué)生畢業(yè)等原因,管理員有權(quán)刪除此類賬號。同時,學(xué)生用戶的信息可以通過其用戶名進(jìn)行查
31、詢。圖書館管理此功能只能由管理員擁有。通過該功能,管理員可以添加和刪除圖書。通過該模塊,管理員可以實時添加新書和發(fā)布新書。對于刪除功能,管理員可以刪除一些已經(jīng)下架不再外借的書,以免造成不必要的麻煩。3.2后臺管理后臺服務(wù)器的任務(wù)是根據(jù)客戶端發(fā)送的請求和客戶端的不同功能模塊,將搜索結(jié)果返回給客戶端并展示給用戶。其基本流程圖如下:圖3.2后臺服務(wù)器流程圖3.2.1注冊管理用戶注冊提交:向服務(wù)器提交用戶注冊信息,并更新到數(shù)據(jù)庫。注冊是后臺的重要內(nèi)容。注冊只提供學(xué)生用戶的注冊,可以保證圖書館用戶權(quán)限的穩(wěn)定性和安全性。通過注冊用戶,用戶可以享受移動客戶端的所有功能。通過手機(jī)客戶端注冊用戶,作為以后通過手
32、機(jī)客戶端登錄圖書管理系統(tǒng)的唯一認(rèn)證。3.2.2登錄管理登錄管理:根據(jù)你的登錄信息向服務(wù)器發(fā)送請求,然后與數(shù)據(jù)庫信息進(jìn)行比對,確認(rèn)用戶登錄成功。登錄時,無論您是學(xué)生用戶還是管理員,都必須首先選擇您的登錄身份。根據(jù)你選擇的不同身份,服務(wù)器用不同的數(shù)據(jù)庫表核對信息,從而通過核對用戶信息來確定登錄賬號的密碼是否正確。3.2.3圖書查詢管理圖書查詢管理主要是通過圖書的幾個關(guān)鍵信息進(jìn)行查詢,根據(jù)圖書名稱和圖書作者將信息提交給數(shù)據(jù)庫進(jìn)行條件檢索。通過對輸入信息的檢索,返回被檢索圖書的基本信息,如圖書名稱、圖書作者、名稱、是否借閱、剩余數(shù)量等基本信息。用戶管理后臺用戶管理是管理員處理特殊情況的學(xué)生用戶和查詢特
33、定學(xué)生用戶的服務(wù),是數(shù)據(jù)更新和與數(shù)據(jù)庫交互的服務(wù)。圖書館管理后臺圖書管理是管理員向圖書數(shù)據(jù)庫表添加新書的服務(wù)。通過將它們添加到數(shù)據(jù)庫表中,學(xué)生可以在圖書查詢功能中查詢最新更新的圖書信息。同時從數(shù)據(jù)庫中刪除不再外借的圖書,從而更新數(shù)據(jù)庫中的圖書名稱。第4章數(shù)據(jù)庫結(jié)構(gòu)設(shè)計4.1服務(wù)器端數(shù)據(jù)庫的設(shè)計采用Oracle數(shù)據(jù)庫。本系統(tǒng)采用Oracle的簡單版本,即數(shù)據(jù)庫名為Oracle XE。首先要解決的是在數(shù)據(jù)庫中某個用戶下創(chuàng)建一個表。首先,配置Oracle數(shù)據(jù)庫。步驟如下:(1)以O(shè)racle管理員身份輸入Oracle,在終端輸入的命令為:sqlplus /as SYSDBA ;(2)啟動Oracle
34、,在終端輸入的命令是:startup;(3)創(chuàng)建新用戶,終端的命令是:首先以管理員身份登錄數(shù)據(jù)庫,然后創(chuàng)建新用戶的命令是:創(chuàng)建由劉玉娟標(biāo)識的用戶劉玉娟;授予資源,連接到柳玉娟;創(chuàng)建的用戶賬號和密碼分別是:劉玉娟、劉玉娟;(4)然后使用命令sqlplus liuyujuan/liuyujuan作為liuyujuan用戶登錄。在liuyujuan帳戶下創(chuàng)建數(shù)據(jù)表,滿足圖書館管理的日常需要。這些表的名稱是lib_admin、lib_user、lib_books和lib_ret,每個數(shù)據(jù)表中存儲的信息是管理員信息、公共用戶信息、圖書信息和圖書借閱信息表。4.1.1數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計在需求分析階段,系統(tǒng)
35、的所有數(shù)據(jù)分析已經(jīng)完成。根據(jù)這一階段建立的概念模型,得到了幾個滿足系統(tǒng)設(shè)計要求的關(guān)系描述。這一階段的主要工作是將前一階段的成果轉(zhuǎn)化為具體的數(shù)據(jù)庫。管理員有兩個屬性:用戶名和密碼。管理員用戶的身份可以通過這兩個屬性來確定,其中ID是主鍵,其E-R圖如下:圖4.1管理員的E-R圖學(xué)生有用戶名、密碼、入學(xué)年份、性別、學(xué)院名稱等屬性。通過這些屬性,他們可以確認(rèn)學(xué)生信息表的信息,其中的主鍵是ID,其E-R圖如下:圖4.2學(xué)生用戶的E-R圖圖書信息表用于存儲圖書的基本信息。其星級包括書名、作者姓名、圖書位置、名稱、所屬學(xué)科、是否外借、最長借閱時間等。其中,自動分配的ID和書名作為聯(lián)合主鍵,其E-R圖如下:
36、圖4.3圖書信息的E-R圖借閱圖書信息表用于存儲借閱圖書的相關(guān)信息。通過此表,可以了解借閱圖書的基本情況。其屬性包括書號、書名、圖書作者、最大借閱時間、實際借閱時間、借閱時間、借閱者ID。其E-R圖如下:圖4.4圖書借閱信息的E-R圖各種實體之間關(guān)系的E-R圖如下:圖4.5實體關(guān)系圖4.1.2數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計根據(jù)數(shù)據(jù)庫的原理,結(jié)合上面的E-R圖,經(jīng)過變換,就可以進(jìn)行數(shù)據(jù)庫的物理設(shè)計了?;谏鲜鰯?shù)據(jù)庫的邏輯設(shè)計,考慮到程序設(shè)計的簡單性和題目的時效性,本系統(tǒng)的數(shù)據(jù)庫采用Oracle的簡單版本建立數(shù)據(jù)庫,在該數(shù)據(jù)庫下創(chuàng)建四個數(shù)據(jù)表,其結(jié)構(gòu)如下:表4-1數(shù)據(jù)表列表表名解釋用戶表商店管理員信息表普通用
37、戶表用于存儲一般用戶信息表圖書信息表用于存儲書籍基本信息表格圖書借閱信息表用于存儲借閱圖書的基本信息。表4-2管理員用戶信息表字段名數(shù)據(jù)類型長度主鍵評論身份自動編號10是由數(shù)據(jù)庫序列自動生成責(zé)任編輯Varchar250不管理員的登錄帳戶。密碼Varchar250不管理員的密碼。表4-3一般用戶信息表字段名數(shù)據(jù)類型長度主鍵評論身份自動編號10是由數(shù)據(jù)庫序列自動生成用戶名Varchar250不唯一的用戶標(biāo)識,缺一不可。密碼Varchar250不普通用戶的用戶登錄密碼IndentityidVarchar2100不用戶的注冊號碼年Varchar250不用戶的注冊年份性別Varchar230不用戶性別大
38、學(xué)Varchar250不用戶學(xué)院表4-4圖書信息表字段名數(shù)據(jù)類型長度主鍵評論身份自動編號10聯(lián)合主鍵由數(shù)據(jù)庫序列自動生成書名Varchar250聯(lián)合主鍵圖書名稱圖書作者Varchar250不書的作者姓名PhnameVarchar250不名字位置Varchar260不位置種類Varchar280不從屬主題狀態(tài)Varchar220不圖書狀態(tài)租房時間Varchar220不最長借用時間表4-5借閱圖書信息表字段名數(shù)據(jù)類型長度主鍵評論身份Varchar210是由數(shù)據(jù)庫自動生成。預(yù)訂日期Varchar250不借用時間行動日期Varchar250不實際借出時間出口日期Varchar250不最長借出時間圖書i
39、dVarchar210不書號書名Varchar250不圖書名稱作者Varchar250不書的作者姓名用戶標(biāo)識Varchar210不借款人id第五章模塊開發(fā)和編碼實現(xiàn)5.1服務(wù)器構(gòu)建java web服務(wù)器的設(shè)計這個軟件是一個C/S結(jié)構(gòu)的系統(tǒng),需要先設(shè)置一個服務(wù)器,使用Java EE中的servlet提供服務(wù),部署在Tomcat下。解決方案是創(chuàng)建不同的servlet來提供不同的服務(wù)。Web服務(wù)的名稱:LibraryService在MyEclipse中新建一個web項目,命名為LibraryService,其結(jié)構(gòu)如下:圖5.1服務(wù)器端代碼結(jié)構(gòu)5.2連接數(shù)據(jù)庫模塊。briup.jdbc是CVM模式下的
40、下層,數(shù)據(jù)庫層,包中的類用來連接和操作數(shù)據(jù)庫,其中JDBCConnectionFactory.java用來連接數(shù)據(jù)庫,連接數(shù)據(jù)庫的三個變量是:私有靜態(tài)字符串url私有靜態(tài)字符串用戶名;私有靜態(tài)字符串userPwd數(shù)據(jù)庫需要URL、用戶名和用戶密碼來連接,這三個值放入jdbcinfo并通過Properties獲取。一些代碼如下:Properties pro = new Properties();pro.load(新文件輸入流( E:Myeclipse6.5工作空間library service src briup JDBC JDBC info );URL = pro . getproperty(
41、 URL );userName = pro . getproperty( userName );user pwd = pro . getproperty( user pwd );new Oracle . JDBC . driver . Oracle driver();connection conn = driver manager . get connection(URL,userName,user pwd);5.3服務(wù)器功能模塊。briup.dao是CVM模式下的dao層,為service提供服務(wù),封裝了數(shù)據(jù)庫操作的方法。中有不同的Servlet類。briup.servlet包,具體如下:注
42、冊模塊用戶注冊servlet作為RegisterServlet提供,它的doPost()和doGet()方法被覆蓋。servlet用于處理學(xué)生用戶的注冊請求。注冊的參數(shù)是用戶名、密碼、indentityid、年份、性別和學(xué)院,它的url是: HYPERLINK ./%20%20%20%20:/:8088/LibraryService/servlet/registerservlet :8088/LibraryService/servlet/registerservlet部分代碼如下:PrintWriter out = response . getwriter();string username
43、= request . getparameter( username );string password = request . getparameter( password );string indentity id = request . getparameter( indentity id );string year = request . getparameter( year );string gender = request . getparameter( gender );string college = request . getparameter( college );libr
44、ary Dao Dao = new LibraryDaoImpl();try User User 1 =(User)Dao . findbysusername(username);if(user1!=空)xml=MakeXML.makeXml(用戶名已經(jīng)存在,false);否則User User = new User();user.setUsername(用戶名);user.setPassword(密碼);user . setindentityid(indentityid);user.setYear(年份);user.setGender(性別);user.setCollege(學(xué)院);dao.
45、save(用戶);Xml=MakeXML.makeXml(恭喜你注冊成功,true);5.3.2登錄模塊提供用戶登錄的servlet是LoginServlet。重寫它的doPost()和doGet()方法。這個servlet用于處理學(xué)生用戶和管理員的登錄請求。登錄參數(shù)是用戶名和密碼,其url是: HYPERLINK ./:/:8088/LibraryService/servlet/loginservlet :8088/LibraryService/servlet/loginservlet部分代碼如下:PrintWriter out = response . getwriter();system
46、 . out . println( welcome client log in );字符串xml = null/獲取string flag = request . getparameter( flag )。trim();字符串用戶名=request.getParameter(用戶名)。trim();字符串密碼=(字符串)request.getParameter(password )。trim();library Dao Dao = new LibraryDaoImpl();if(flag . equals( normal )如果(用戶名!=空)嘗試. bri up . POJO . user
47、user = Dao . findbysusername(用戶名);如果(用戶!=空)if(user.getPassword()。equalsIgnoreCase(密碼)Xml=MakeXML.makeXml(恭喜你成功登錄,true);否則Xml=MakeXML.makeXml(密碼錯誤,false);否則Xml=MakeXML.makeXml(用戶名不正確,false); catch(異常e) / TODO自動生成的catch塊System.out.println(網(wǎng)絡(luò)異常);out . println( );Out.println(網(wǎng)絡(luò)異常 ); else if(flag . equal
48、s( admin )嘗試Admin admin=dao.findByAdminname(用戶名);如果(admin!=空)if(admin.getPassword()。等于(密碼)Xml=MakeXML.makeXml(恭喜你成功登錄,true);否則Xml=MakeXML.makeXml(密碼錯誤,false);否則Xml=MakeXML.makeXml(用戶名不存在,false); catch(異常e) / TODO自動生成的catch塊e . printstacktrace();5.3.3圖書查詢模塊提供特定圖書查詢的servlet是findBookServlet,它的doPost()和
49、doGet()方法被重寫。這個servlet用于處理學(xué)生用戶查詢特定書籍的請求。圖書的查詢參數(shù)是bookname和bookauthor,它們的url是: HYPERLINK ./:/:8088/LibraryService/servlet/findbooksservlet :8088/LibraryService/servlet/findbooksservlet部分代碼如下:string bookname = request . getparameter( bookname )。trim();string author name = request . getparameter( author
50、 name )。trim();string status = request . getparameter( status )。trim();/狀態(tài)為是,表示已借出,狀態(tài)為否,表示未借出。System.out.println( -你好我在findbookservlet-);字符串xml = nullList list = nulllibrary Dao Dao = new LibraryDaoImpl();if(status.equals( )嘗試list = Dao . findbookbyname(bookname,author name);如果(列表!=空)xml=MakeXML.mak
51、eXml(list,list . size()+ );否則Xml=MakeXML.makeXml(列表,“抱歉圖書館沒有這本書”); catch(異常e) / TODO自動生成的catch塊e . printstacktrace();否則嘗試list=dao.findBookByName(圖書名,作者名,狀態(tài));如果(列表!=空)xml=MakeXML.makeXml(list,list . size()+ );否則Xml=MakeXML.makeXml(列表,“抱歉圖書館沒有這本書”); catch(異常e) / TODO自動生成的catch塊e . printstacktrace();5.
52、3.4針對特定用戶的查詢模塊提供特定的用戶查詢servlet作為findUserservlet,并覆蓋它的doPost()和doGet()方法。這個servlet用于處理管理員用戶查詢特定學(xué)生用戶信息的請求。管理員查詢特定學(xué)生的用戶參數(shù)是用戶名,其url是: HYPERLINK ./:/:8088/LibraryService/servlet/finduserservlet :8088/LibraryService/servlet/finduserservlet部分代碼如下:PrintWriter out = response . getwriter();字符串用戶名=request.getP
53、arameter(用戶名)。trim();字符串xml = nulllibrary Dao Dao = new LibraryDaoImpl();嘗試. bri up . POJO . user user = Dao . findbysusername(用戶名);如果(用戶!=空)嘗試xml=MakeXML.makeXml(用戶, ); catch(異常e) / TODO自動生成的catch塊e . printstacktrace();否則嘗試Xml=MakeXML.makeXml(密碼錯誤,false); catch(異常e) / TODO自動生成的catch塊e . printstackt
54、race(); catch (DataAccessException e) / TODO自動生成的catch塊e . printstacktrace();5.3.5查詢所有用戶模塊將所有用戶查詢servlet作為findAllUserServlet提供,并重寫其doPost()和doGet()方法。這個servlet用于處理管理員用戶查詢所有學(xué)生用戶信息的請求。查詢所有學(xué)生用戶信息不需要提供任何參數(shù)。你只需要點擊“全部查詢”按鈕就可以找到所有的信息。它的網(wǎng)址是: HYPERLINK ./:/:8088/LibraryService/servlet/findalluserservlet :808
55、8/LibraryService/servlet/findalluserservlet部分代碼如下:PrintWriter out = response . getwriter();字符串xml = nullList list = nulllibrary Dao Dao = new LibraryDaoImpl();嘗試list = Dao . find alluser();xml=MakeXML.makeXml(列表, ); catch(異常e) / TODO自動生成的catch塊嘗試Xml=MakeXML.makeXml(網(wǎng)絡(luò)異常,false); catch(異常e1) / TODO自動生
56、成的catch塊E1 . printstacktrace();e . printstacktrace();5.3.6添加圖書模塊提供管理員添加一個圖書servlet到saveBookServlet,并重寫其doPost()和doGet()方法。這個servlet用于處理管理員向書架添加新書的請求。對于需要上架的圖書,參數(shù)如圖書名稱、圖書作者、圖書主題、圖書位置、圖書名稱、最大借閱時間等。需要提供。它的網(wǎng)址是: HYPERLINK ./:/:8088/LibraryService/servlet/savebookservlet :8088/LibraryService/servlet/saveb
57、ookservlet部分代碼如下:PrintWriter out = response . getwriter();string bookname = request . getparameter( bookname )。trim();string author name = request . getparameter( author name )。trim();string phname = request . getparameter( phname )。trim();字符串location = request . getparameter( location )。trim();stri
58、ng category = request . getparameter( category )。trim();/String status = request . getparameter( status )。trim();string rent time = request . getparameter( rent time )。trim();string num = request . getparameter( num )。trim();字符串xml = nullint number = integer . parse int(num);如果(數(shù)字 0)library Dao Dao
59、= new LibraryDaoImpl();for(int I = 0;I 數(shù)字;i+)Book book =新書();book.setBookname(圖書名);book . set author name(author name);book . setp hname(phname);book.setLocation(位置);book.setCategory(類別);book . set status( no );book . setrenttime(rent time);嘗試dao.save(書);System.out.println(我有保存這本書); catch(異常e) / TOD
60、O自動生成的catch塊嘗試Xml=MakeXML.makeXml(抱歉出錯,false); catch(異常e1) / TODO自動生成的catch塊E1 . printstacktrace();e . printstacktrace();嘗試Xml=MakeXML.makeXml(恭喜救書,真); catch(異常e) / TODO自動生成的catch塊e . printstacktrace();5.4客戶端設(shè)計ANDROID UI界面的設(shè)計在Eclipse中安裝ADT插件,導(dǎo)入androidSDK后,創(chuàng)建一個Android項目,作為圖書管理系統(tǒng)的客戶端,供廣大用戶下載使用。所以UI界面要
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小班小雪節(jié)氣國旗下講話稿范文(9篇)
- 開學(xué)典禮致辭(15篇)
- 初級會計經(jīng)濟(jì)法基礎(chǔ)-初級會計《經(jīng)濟(jì)法基礎(chǔ)》模擬試卷335
- RRD硅油填充術(shù)后繼發(fā)高眼壓的眼前節(jié)相關(guān)影響因素分析及中醫(yī)體質(zhì)類型研究
- 建筑與市政工程質(zhì)量安全巡查的第三方解決方案
- 【醫(yī)學(xué)課件】加強(qiáng)防范醫(yī)療事故(83p)
- 2025版食堂食材采購合同及食品安全培訓(xùn)服務(wù)協(xié)議3篇
- 養(yǎng)魚店銷售員工作總結(jié)
- 酒店廚房管理規(guī)范制定
- 2025版行政上訴狀補(bǔ)充范文:權(quán)威解讀與實戰(zhàn)演練3篇
- 腰麻課件教學(xué)課件
- 石油化工企業(yè)環(huán)境保護(hù)管理制度預(yù)案
- 2024年甘肅省高考?xì)v史試卷(含答案解析)
- 2024年山東省煙臺市初中學(xué)業(yè)水平考試地理試卷含答案
- 《實踐論》(原文)毛澤東
- 抗腫瘤治療所致惡心嘔吐護(hù)理
- 第三單元名著導(dǎo)讀《紅星照耀中國》(公開課一等獎創(chuàng)新教學(xué)設(shè)計+說課稿)
- 壓力鋼管制造安裝及驗收規(guī)范
- 2024-2030年中國14-丁二醇(BDO)行業(yè)市場現(xiàn)狀供需分析及重點企業(yè)投資評估規(guī)劃分析研究報告
- YYT 0681.11-2014 無菌醫(yī)療器械包裝試驗方法 第11部分:目力檢測醫(yī)用包裝密封完整性
- 遼寧省沈陽市第七中學(xué)2023-2024學(xué)年七年級下學(xué)期期末數(shù)學(xué)試題
評論
0/150
提交評論