基于Android的網(wǎng)上訂餐系統(tǒng)參考模板_第1頁(yè)
基于Android的網(wǎng)上訂餐系統(tǒng)參考模板_第2頁(yè)
基于Android的網(wǎng)上訂餐系統(tǒng)參考模板_第3頁(yè)
基于Android的網(wǎng)上訂餐系統(tǒng)參考模板_第4頁(yè)
基于Android的網(wǎng)上訂餐系統(tǒng)參考模板_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1 / 54 西安歐亞學(xué)院信息工程學(xué)院專業(yè)綜合課程設(shè)計(jì)報(bào)告項(xiàng)目題目: 基于安卓的網(wǎng)上訂餐系統(tǒng) 專業(yè)班級(jí): 統(tǒng)本電信 1301 班 姓名學(xué)號(hào): 馬麗 13610706150192 指導(dǎo)教師: 趙宏宇 李有強(qiáng) 完成時(shí)間: 2016 年 12 月 30 日 設(shè)計(jì)報(bào)告成績(jī)?cè)u(píng)定表設(shè)計(jì)報(bào)告成績(jī)?cè)u(píng)定表:備注:以上總分為該組的平均分,根據(jù)成員分工具體分?jǐn)?shù)如下。評(píng)分內(nèi)容評(píng)分內(nèi)容成績(jī)成績(jī)系統(tǒng)方案思路合理性(10%)報(bào)告內(nèi)容的完整性(10%)硬件原理圖及說(shuō)明(20%)程序流程圖(20%)程序清單(10%)調(diào)試及結(jié)果分析(10%)系統(tǒng)改進(jìn)建議或者方案(10%)格式規(guī)范(10%)總分總分小組成員分工分?jǐn)?shù)馬麗 軟件調(diào)試摘

2、摘 要要隨著科技的發(fā)展,二十一世紀(jì)成為了以網(wǎng)絡(luò)化,信息化為核心的社會(huì)。網(wǎng)絡(luò)商業(yè)化也成為了時(shí)下最熱門的詞匯。隨著信息技術(shù)的不斷更新,特別是 07 年谷歌公司推出了 Android 開(kāi)放源碼,讓 Android 操作系統(tǒng)成為了移動(dòng)平臺(tái)的寵兒,本系統(tǒng)主要分析了中小型餐飲店管理與發(fā)展的現(xiàn)狀所面臨的問(wèn)題,發(fā)現(xiàn)傳統(tǒng)的服務(wù)模式已經(jīng)不能適應(yīng)市場(chǎng)發(fā)展的需求,方便、快捷、個(gè)性化的網(wǎng)上訂餐服務(wù)正在進(jìn)入人們的生活。針對(duì)這類問(wèn)題,結(jié)合當(dāng)代科技發(fā)展的新成果,本文構(gòu)思規(guī)劃了一套最貼切的服務(wù)模式,為中小型餐飲店外送服務(wù)提供了一套系統(tǒng)。本設(shè)計(jì)是一個(gè)基于 Android 手機(jī)的網(wǎng)上訂餐系統(tǒng),采用 C/S 模式,能為客戶提供網(wǎng)上選

3、擇瀏覽菜品介紹,點(diǎn)菜訂餐服務(wù),并為管理員提供一個(gè)服務(wù)平臺(tái)實(shí)現(xiàn)用戶信息與顧客訂單的管理,從而提高了服務(wù)的質(zhì)量,本文從系統(tǒng)需求、系統(tǒng)實(shí)際、代碼實(shí)現(xiàn)幾個(gè)方面介紹了整個(gè)軟件的開(kāi)發(fā)過(guò)程,這個(gè)系統(tǒng)采用 JAVA、SQL Server 數(shù)據(jù)庫(kù),并利用 MyEclipse、TOMCAT、Android SDK、ADT、AVD、DDMS 等開(kāi)發(fā)環(huán)境或者開(kāi)發(fā)工具。關(guān)鍵詞關(guān)鍵詞:Android;Java;MyEclipse;SQLite;SQL Server 2005ABSTRACTWith the development of science and technology,the 21st century has

4、 become a society centred on information and network.Hence commercialization of network has become one of the hottest topics in recent years. Android operating system is gradually going to be the darling of the mobile platform, which results from the constantly updating of information technology, es

5、pecially the appearance of Android open source carried out by Google company in 2007. The system mentioned in this article mainly focus on the problems faced by the middle and small reataurants in their management and development, and finds that the traditional service mode can not adapt to the need

6、s of the development of the market any more.A more convenient, quicker,and personalized service enters peoples lifeonline reservations. In view of the existing problems and combining the latest achievements of the development of modern technology, I have conceived a set of the most appropriate patte

7、rn of dilivery service for the restaurant industry.This design is a online reservations system based on the Android mobile phones, which adopts C/S mode. It can provide services for clients to choose dishes introduction freely ,and to order meal actively.Besides, it can also offer a service platform

8、 for manager to regulate the user informations and customer orders, so as to improve the quality of their services.In this article, Id like to introduce the whole development process of this software in details from the system requirements, system realization,code implementation and some other aspec

9、ts.This system uses JAVA,SQL Server database,in addition, MyEclipse、TOMCAT、Android SDK、ADT、AVD、DDMS and other development environments or development tools are also used in it.Keywords: Android;Java;MyEclipse;SQLite;SQL Server 2005目目 錄錄第一章第一章 引引 言言.11.1 項(xiàng)目背景.11.2 項(xiàng)目目的.11.3 主要內(nèi)容.2第二章第二章 系統(tǒng)理論與技術(shù)系統(tǒng)理論與技

10、術(shù).32.1 Android .32.1.1 Android 簡(jiǎn)介 .32.1.2 Android Features 特性.32.1.3 Android 基本框架(Android Architecture).42.1.4 Android 系統(tǒng)的四大組件 .42.2 Java.52.3 SQL Server 2005 和 SQLite 數(shù)據(jù)庫(kù).52.4 C/S 模式.6第三章第三章 系統(tǒng)分析與設(shè)計(jì)系統(tǒng)分析與設(shè)計(jì).83.1 功能需求.83.2 模塊結(jié)構(gòu)與流程.93.2.1 客戶端.93.2.2 服務(wù)端.103.3 數(shù)據(jù)庫(kù)設(shè)計(jì).113.3.1 數(shù)據(jù)庫(kù)表及其結(jié)構(gòu).113.3.2 數(shù)據(jù).123.3.3

11、客戶端數(shù)據(jù)庫(kù)的連接.133.3.4 服務(wù)器數(shù)據(jù)庫(kù)的連接.143.4 系統(tǒng)結(jié)構(gòu).153.4.1 部署圖.153.4.2 類圖.153.5 執(zhí)行概念.16第四章第四章 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn).184.1 Android 環(huán)境搭建 .184.2 客戶端.194.2.1 系統(tǒng)登錄.194.2.2 系統(tǒng)注冊(cè).214.2.3 瀏覽菜品.234.2.4 搜索菜品.254.2.5 訂餐.264.2.6 結(jié)賬.284.3 服務(wù)端.294.3.1 系統(tǒng)登錄.294.3.2 訂單管理.304.3.3 菜品管理.324.3.4 會(huì)員管理.35第五章第五章 結(jié)束語(yǔ)結(jié)束語(yǔ).37參參 考考 文文 獻(xiàn)獻(xiàn).38致致 謝謝.39第一章

12、第一章 引引 言言1.1 項(xiàng)目背景項(xiàng)目背景伴隨著我國(guó)市場(chǎng)經(jīng)濟(jì)的高度發(fā)展,企業(yè)越來(lái)越依賴于市場(chǎng)和客戶,這種依賴關(guān)系已經(jīng)開(kāi)始逐步提升到關(guān)乎企業(yè)生存的高度。如何獲得更多客流量,如何通過(guò)小的代價(jià)而使商家獲得更大的知名度,這是使企業(yè)得以生存、發(fā)展、壯大的關(guān)鍵。年銷售過(guò)億的眾多電子商務(wù)案例讓人們看到了更多的商機(jī)。與應(yīng)用場(chǎng)景相當(dāng)有限的 PC (個(gè)人電腦)相比,生而具備便攜屬性的手機(jī)給了電商們更大的想象空間。移動(dòng)電子商務(wù)由此產(chǎn)生了。移動(dòng)電子商務(wù)就是利用手機(jī)、PDA 及掌上電腦等無(wú)線終端進(jìn)行的 B2B、B2C或 C2C 的電子商務(wù)。它將因特網(wǎng)、移動(dòng)通信技術(shù)、短距離通信技術(shù)及其它信息處理技術(shù)完美的結(jié)合,使人們可以

13、在任何時(shí)間、任何地點(diǎn)進(jìn)行各種商貿(mào)活動(dòng),實(shí)現(xiàn)隨時(shí)隨地、線上線下的購(gòu)物與交易、在線電子支付以及各種交易活動(dòng)、商務(wù)活動(dòng)、金融活動(dòng)和相關(guān)的綜合服務(wù)活動(dòng)等。 而 Android 操作系統(tǒng)憑借著自己開(kāi)放的平臺(tái)允許任何移動(dòng)終端廠商加入到 Android聯(lián)盟中,從而使得越來(lái)越多的用戶傾向于選擇操作系統(tǒng)為 Android 的手機(jī)品牌。選擇設(shè)計(jì)基于 Android 平臺(tái)的軟件,毫無(wú)疑問(wèn)能覆蓋更多的群眾, 餐飲業(yè)在電子商務(wù)中還處于形成的初期,傳統(tǒng)的餐飲業(yè)中,大都是以實(shí)際門面形式來(lái)進(jìn)行宣傳和交流。作為網(wǎng)絡(luò)普及化的社會(huì),這還缺少了一些更為現(xiàn)代化的元素。餐飲業(yè)是一個(gè)個(gè)性化、多樣化的服務(wù)業(yè),而電子商務(wù)則最能體現(xiàn)個(gè)性化、多樣

14、化服務(wù)的方式。而且現(xiàn)在大部分電子商務(wù)都體現(xiàn)為向大企業(yè)服務(wù),結(jié)合餐飲這個(gè)行業(yè)的特點(diǎn),最終還發(fā)展為同小區(qū)小店服務(wù)的模式。以最貼切的方式,最靈便的服務(wù)進(jìn)入個(gè)個(gè)網(wǎng)絡(luò)社區(qū),進(jìn)入人們的生活。1.21.2 項(xiàng)目目的項(xiàng)目目的如今宅男宅女日益增加,很多餐飲店都提供外賣服務(wù),傳統(tǒng)的外賣服務(wù)需要客戶給商家打電話并報(bào)出地址,商家那邊也需要記錄下客戶的信息,才能將外賣準(zhǔn)確的送達(dá),但在這之間都是人在操作,難免會(huì)出現(xiàn)偏差和遺漏為客戶或者商家?guī)?lái)?yè)p失。如今 3G 網(wǎng)絡(luò)覆蓋范圍越來(lái)越廣,Android 手機(jī)也占領(lǐng)了手機(jī)行業(yè)的大頭,那么我們可以考慮做一個(gè) Android 的應(yīng)用來(lái)方便商家和客戶,讓出錯(cuò)率達(dá)到最低。用戶要點(diǎn)餐的時(shí)候

15、只需手機(jī)上網(wǎng)點(diǎn)一下菜單就能吃到自己喜歡吃的菜品,這里面蘊(yùn)含了很大的商機(jī),完全能夠有效的提高商家的營(yíng)業(yè)額,基于以上因素,所以提出了這樣一個(gè)基于 Android的網(wǎng)上訂餐系統(tǒng)。本項(xiàng)目的目的是開(kāi)發(fā)一個(gè)可以讓用戶在手機(jī)上操作的客戶端,然后與服務(wù)器連接進(jìn)行數(shù)據(jù)交互,來(lái)實(shí)現(xiàn)網(wǎng)上訂餐的流程??蛻舳诵枰獙?shí)現(xiàn)瀏覽菜品,點(diǎn)菜,下訂單,搜索等功能。服務(wù)器端需實(shí)現(xiàn)添加、刪除、修改菜品、對(duì)訂單的處理,以及對(duì)會(huì)員的管理等功能。本項(xiàng)目是一款基于 Android 手機(jī)平臺(tái)的訂餐系統(tǒng),使擁有 Android 手機(jī)的用戶生活更加方便快捷,使得手機(jī)顯得更生動(dòng)靈活化,與人們更為接近,讓手機(jī)主人隨時(shí)隨地都能吃到自己喜歡的菜品。使人們的

16、生活更加多樣化。也使設(shè)計(jì)者更加熟練 Android的技術(shù)和其他在市場(chǎng)上的特點(diǎn)。1.31.3 主要內(nèi)容主要內(nèi)容通過(guò)對(duì)實(shí)際情況的調(diào)研,本系統(tǒng)大致可分為三個(gè)部分,即手機(jī)客戶端、電腦服務(wù)器端和圖形化界面工具。系統(tǒng)采用 HTTP 協(xié)議來(lái)進(jìn)行數(shù)據(jù)傳輸。采用 C/S 結(jié)構(gòu),客戶端為基于 Android 操作系統(tǒng)平臺(tái)的智能手機(jī),主要的業(yè)務(wù)邏輯則服務(wù)器端來(lái)實(shí)現(xiàn),數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)服務(wù)器??蛻舳酥饕獙?shí)現(xiàn)位置服務(wù),商品展示,會(huì)員注冊(cè)及登錄,購(gòu)物車,商品搜索和個(gè)人信息等功能,服務(wù)器端主要是完成數(shù)據(jù)交互和數(shù)據(jù)邏輯處理,而圖形界面化工具則是負(fù)責(zé)商品、訂單等的增刪改查。為了一步步實(shí)現(xiàn)確定的功能,本論文主要內(nèi)容安排如下:第一章

17、:引言(介紹課題研究的背景和目的)第二章:系統(tǒng)理論與技術(shù)(在本項(xiàng)目中設(shè)計(jì)到的技術(shù)簡(jiǎn)介)第三章:系統(tǒng)分析與設(shè)計(jì)(需求分析,數(shù)據(jù)庫(kù)的分析與設(shè)計(jì)以及系統(tǒng)結(jié)構(gòu)的設(shè)計(jì))第四章:系統(tǒng)實(shí)現(xiàn)(根據(jù)需求分析來(lái)實(shí)現(xiàn)系統(tǒng)的各個(gè)模塊功能,使客戶端與服務(wù)器,服務(wù)器與數(shù)據(jù)庫(kù)能正常數(shù)據(jù)交互。這部分主要搭建開(kāi)發(fā)環(huán)境,編寫代碼,測(cè)試,運(yùn)行)第五章:結(jié)束語(yǔ)(對(duì)本項(xiàng)目做一個(gè)項(xiàng)目總結(jié))第二章第二章 系統(tǒng)理論與技術(shù)系統(tǒng)理論與技術(shù)2.1 Android2.1.1 Android 簡(jiǎn)介簡(jiǎn)介 Android 一詞的本義指“機(jī)器人” ,同時(shí)也是 Google 于 2007 年 11 月 5 日宣布的基于 Linux 平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)的名

18、稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號(hào)稱是首個(gè)為移動(dòng)終端打造的真正開(kāi)放和完整的移動(dòng)軟件。Android 是基于 Linux 內(nèi)核的軟件平臺(tái)和操作系統(tǒng),早期由 Google 開(kāi)發(fā)(在華注冊(cè)商標(biāo)名為“安致” ) ,后由開(kāi)放手機(jī)聯(lián)盟(Open Handset Alliance)開(kāi)發(fā)。它采用了軟件堆層(software stack,又名以軟件疊層)的架構(gòu),主要分為三部分。低層以 Linux 內(nèi)核工作為基礎(chǔ),只提供基本功能;其他的應(yīng)用軟件則由各公司自行開(kāi)發(fā),以 Java 作為編寫程序的一部分。另外,為了推廣此技術(shù),Google 和其它幾十個(gè)手機(jī)公司建立了開(kāi)放手機(jī)聯(lián)盟。Android 在

19、未公開(kāi)之前常被傳聞為 Google 電話或 gPhone。大多傳聞?wù)J為Google 開(kāi)發(fā)的是自己的手機(jī)電話產(chǎn)品,而不是一套軟件平臺(tái)。到了 2010 年 1 月,Google 開(kāi)始發(fā)表自家品牌手機(jī)電話的 Nexus One,目前最新 SDK 版本為 Android 4.0.3。2.1.2 Android Features 特性特性Android 系統(tǒng)有如下的幾大特性1: 應(yīng)用程序框架 支持組件的重用與替換 Dalvik 虛擬機(jī) 專門為移動(dòng)設(shè)備做了優(yōu)化 內(nèi)部集成瀏覽器 該瀏覽器基于開(kāi)源的 WebKit 引擎 優(yōu)化的圖形庫(kù) 包括 2D 和 3D 圖形庫(kù),3D 圖形庫(kù)基于 OpenGL ES SQLi

20、te 用作結(jié)構(gòu)化的數(shù)據(jù)存儲(chǔ) 多媒體支持 包括常見(jiàn)的音頻、視頻和靜態(tài)印象文件格式(如 MPEG4, MP3, AAC, AMR, JPG, PNG) GSM 電話(依賴于硬件) 藍(lán)牙 Bluetooth, EDGE, 3G, and WiFi (依賴于硬件) 照相機(jī),GPS,指南針,和加速度計(jì) (依賴于硬件) 豐富的開(kāi)發(fā)環(huán)境 包括設(shè)備模擬器,調(diào)試工具,內(nèi)存及性能分析圖表,和Eclipse 集成開(kāi)發(fā)環(huán)境插件2.1.3 Android 基本框架(基本框架(Android Architecture)圖圖 2.1 Android Architecture2.1.4 Android 系統(tǒng)的四大組件系統(tǒng)的四

21、大組件在 Android 系統(tǒng)中,為我們提供了四大基本組件,每個(gè)組件是一個(gè)視圖,但是有些是可見(jiàn)的,有些是不可見(jiàn)的視圖,像 Activity,ContentProvider 是可見(jiàn)的視圖,Service 和 BroadcastReceiver 是不可見(jiàn)的,它們只在系統(tǒng)的后臺(tái)運(yùn)行。下面分別介紹四大組件3:(1)Activity 簡(jiǎn)介在 Android 系統(tǒng)中 Activity 提供可視化的用戶界面,一個(gè) Android 應(yīng)用通常由多個(gè)Activity 組成。多個(gè) Activity 組成了 Activity 棧(Stack) ,當(dāng)前活動(dòng)的 Activity 處于棧頂。Activity 有自己的生命周

22、期,由 Android 系統(tǒng)來(lái)控制。(2)Service 簡(jiǎn)介顧名思義 Service 就是運(yùn)行在后臺(tái)的一種服務(wù)程序,一般很少和用戶交互,因此沒(méi)有可視化界面定義一個(gè) Service 類比較簡(jiǎn)單,只要繼承 Service 類,實(shí)現(xiàn)其生命周期中的方法就可以了。一個(gè)定義好的 Service 必須在 AndroidManifest.xml 配置文件注冊(cè),通過(guò)元素聲明才能使用.Service 有自己的生命周期,我們可以調(diào)用 startService()啟動(dòng)一個(gè) Service 或者 bindService()方法來(lái)綁定一個(gè)存在的 Service (3)Broadcast Receiver 簡(jiǎn)介Broad

23、cast Receiver 顧名思義廣播接收器,它和事件處理機(jī)制類似,只不過(guò)事件處理機(jī)制是程序組件級(jí)別的(例如,某個(gè)按鈕的單擊事件) ,而廣播事件處理機(jī)制是系統(tǒng)級(jí)別的。到目前為止我們可以使用 Intent 來(lái)啟動(dòng)一個(gè)程序組件,我們還可以通過(guò)使用sendBroadcast()方法來(lái)發(fā)起一個(gè)系統(tǒng)級(jí)別的事件廣播來(lái)傳遞消息。我們可以在你的應(yīng)用程序中實(shí)現(xiàn) Broadcast Receiver 來(lái)監(jiān)聽(tīng)和響應(yīng)這些廣播的 Intent (4)ContentProvider 簡(jiǎn)介Content Provider 用來(lái)保存和檢索數(shù)據(jù),并且使應(yīng)用程序之間相互訪問(wèn)數(shù)據(jù)成為可能。它是跨應(yīng)用程序共享數(shù)據(jù)的唯一方法。And

24、roid 為常用的數(shù)據(jù)類型(如:音視頻、圖片和聯(lián)系方式等)提供了大量的Content Provider。它們被定義在 vider 包下面。通過(guò)這樣定義好的ContentProvider 我們可以方便的進(jìn)行數(shù)據(jù)操作。當(dāng)然我們必須擁有適當(dāng)?shù)臋?quán)限。我們也可以自己來(lái)定 ContentProvider 共享我們的數(shù)據(jù),方便用戶的訪問(wèn)。2.2 JavaJava 是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序設(shè)計(jì)語(yǔ)言和 Java 平臺(tái)(即 JavaSE, JavaEE, JavaME)的總

25、稱。Java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人 PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開(kāi)發(fā)者專業(yè)社群。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java 更具備了顯著優(yōu)勢(shì)和廣闊前景。Eclipse 是一個(gè)開(kāi)放源代碼的、基于 Java 的可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開(kāi)發(fā)工具(Java Development Kit,JDK) 。 雖然大多數(shù)用戶很樂(lè)于將 Eclipse 當(dāng)作 Java 集成開(kāi)發(fā)環(huán)境(IDE

26、)來(lái)使用,但 Eclipse 的目標(biāo)卻不僅限于此。Eclipse 還包括插件開(kāi)發(fā)環(huán)境(Plug-in Development Environment,PDE) ,這個(gè)組件主要針對(duì)希望擴(kuò)展 Eclipse 的軟件開(kāi)發(fā)人員,因?yàn)樗试S他們構(gòu)建與 Eclipse 環(huán)境無(wú)縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開(kāi)發(fā)環(huán)境而言,所有工具開(kāi)發(fā)人員都具有同等的發(fā)揮場(chǎng)所。 這種平等和一致性并不僅限于 Java 開(kāi)發(fā)工具。盡管 Eclipse 是使用 Java 語(yǔ)言開(kāi)發(fā)的,但它的用途并不限于 Java 語(yǔ)言;例如,支持諸如 C/C+

27、 和 COBOL 等編程語(yǔ)言的插件已經(jīng)可用,或預(yù)計(jì)將會(huì)推出。Eclipse 框架還可用來(lái)作為與軟件開(kāi)發(fā)無(wú)關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。 基于 Eclipse 的應(yīng)用程序的一個(gè)突出例子是 IBM Rational Software Architect,它構(gòu)成了 IBM Java 開(kāi)發(fā)工具系列的基礎(chǔ)7。2.3 SQL Server 2005 和和 SQLite 數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)SQL Server 是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。它最初是由 Microsoft Sybase 和 Ashton-Tate 三家公司共同開(kāi)發(fā)的,于 1988 年推出了第一個(gè) OS/2 版本。在 Windows NT

28、 推出后,Microsoft 與 Sybase 在 SQL Server 的開(kāi)發(fā)上就分道揚(yáng)鑣了,Microsoft 將 SQL Server 移植到 Windows NT 系統(tǒng)上,專注于開(kāi)發(fā)推廣 SQL Server 的 Windows NT 版本。Sybase 則較專注于 SQL Server 在 UNIX 操作系統(tǒng)上的應(yīng) SQL Server 安裝界面用。 SQLite,是一款輕型的數(shù)據(jù)庫(kù),是遵守 ACID 的關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百 K 的內(nèi)存就夠了。它能夠支持Windows/

29、Linux/Unix 等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合,比如 Tcl、C#、PHP、Java 等,還有 ODBC 接口,同樣比起 Mysql、PostgreSQL 這兩款開(kāi)源世界著名的數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)講,它的處理速度比他們都快。SQLite 第一個(gè) Alpha 版本誕生于 2000 年 5 月. 至今已經(jīng)有 10 個(gè)年頭,SQLite 也迎來(lái)了一個(gè)版本 SQLite 3 已經(jīng)發(fā)布。2.4 C/S 模式模式在網(wǎng)絡(luò)連接模式中,除對(duì)等網(wǎng)外,還有另一種形式的網(wǎng)絡(luò),即客戶機(jī)/服務(wù)器網(wǎng),Client/Server。在客戶機(jī)/服務(wù)器網(wǎng)絡(luò)中,服務(wù)器是網(wǎng)絡(luò)的核心,而客戶機(jī)是網(wǎng)絡(luò)的基礎(chǔ),客戶機(jī)依靠

30、服務(wù)器獲得所需要的網(wǎng)絡(luò)資源,而服務(wù)器為客戶機(jī)提供網(wǎng)絡(luò)必須的資源。這里客戶和服務(wù)器都是指通信中所涉及的兩個(gè)應(yīng)用進(jìn)程(軟件) 。使用計(jì)算機(jī)的人是計(jì)算機(jī)的“用戶” (user)而不是“客戶” (client) 。但在許多國(guó)外文獻(xiàn)中,也經(jīng)常把運(yùn)行客戶程序的機(jī)器稱為 client(這種情況下也可把 client 譯為“客戶機(jī)” ) ,把運(yùn)行服務(wù)器程序的機(jī)器稱為 server。所以有時(shí)要根據(jù)上下文判斷 client 與 server 是指軟件還是硬件。它是軟件系統(tǒng)體系結(jié)構(gòu),通過(guò)它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到 Client 端和 Server 端來(lái)實(shí)現(xiàn),降低了系統(tǒng)的通訊開(kāi)銷。目前大多數(shù)應(yīng)

31、用軟件系統(tǒng)都是 Client/Server 形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的 Web應(yīng)用發(fā)展,Web 和 Client/Server 應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶都可以訪問(wèn)新的和現(xiàn)有的應(yīng)用系統(tǒng),通過(guò)現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。C/S 架構(gòu)軟件的優(yōu)勢(shì)和劣勢(shì)9:應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。最簡(jiǎn)單的 C/S 體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)應(yīng)用由兩部分組成,即客戶應(yīng)用程序和數(shù)據(jù)庫(kù)服務(wù)器程序。二者可分別稱為前臺(tái)程序與后臺(tái)程序。運(yùn)行數(shù)據(jù)庫(kù)服務(wù)器程序的機(jī)器,也稱為應(yīng)用服務(wù)器。一旦服務(wù)器程序被啟動(dòng),就隨

32、時(shí)等待響應(yīng)客戶程序發(fā)來(lái)的請(qǐng)求;客戶應(yīng)用程序運(yùn)行在用戶自己的電腦上,對(duì)應(yīng)于數(shù)據(jù)庫(kù)服務(wù)器,可稱為客戶電腦,當(dāng)需要對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行任何操作時(shí),客戶程序就自動(dòng)地尋找服務(wù)器程序,并向其發(fā)出請(qǐng)求,服務(wù)器程序根據(jù)預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果,應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。數(shù)據(jù)的儲(chǔ)存管理功能較為透明。在數(shù)據(jù)庫(kù)應(yīng)用中,數(shù)據(jù)的儲(chǔ)存管理功能,是由服務(wù)器程序和客戶應(yīng)用程序分別獨(dú)立進(jìn)行的,前臺(tái)應(yīng)用可以違反的規(guī)則,并且通常把那些不同的(不管是已知還是未知的)運(yùn)行數(shù)據(jù),在服務(wù)器程序中不集中實(shí)現(xiàn),例如訪問(wèn)者的權(quán)限,編號(hào)可以重復(fù)、必須有客戶才能建立定單這樣的規(guī)則。所有這些,對(duì)于工作在前臺(tái)程序上的最終用戶,是“透明”的,他們無(wú)

33、須過(guò)問(wèn)(通常也無(wú)法干涉)背后的過(guò)程,就可以完成自己的一切工作。在客戶服務(wù)器架構(gòu)的應(yīng)用中,前臺(tái)程序不是非常“瘦小” ,麻煩的事情都交給了服務(wù)器和網(wǎng)絡(luò)。在 C/S 體系的下,數(shù)據(jù)庫(kù)不能真正成為公共、專業(yè)化的倉(cāng)庫(kù),它受到獨(dú)立的專門管理。C/S 架構(gòu)的劣勢(shì)是高昂的維護(hù)成本且投資大。首先,采用 C/S 架構(gòu),要選擇適當(dāng)?shù)臄?shù)據(jù)庫(kù)平臺(tái)來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)的真正“統(tǒng)一” ,使分布于兩地的數(shù)據(jù)同步完全交由數(shù)據(jù)庫(kù)系統(tǒng)去管理,但邏輯上兩地的操作者要直接訪問(wèn)同一個(gè)數(shù)據(jù)庫(kù)才能有效實(shí)現(xiàn),有這樣一些問(wèn)題,如果需要建立“實(shí)時(shí)”的數(shù)據(jù)同步,就必須在兩地間建立實(shí)時(shí)的通訊連接,保持兩地的數(shù)據(jù)庫(kù)服務(wù)器在線運(yùn)行,網(wǎng)絡(luò)管理工作人員既要對(duì)服務(wù)

34、器維護(hù)管理,又要對(duì)客戶端維護(hù)和管理,這需要高昂的投資和復(fù)雜的技術(shù)支持,維護(hù)成本很高,維護(hù)任務(wù)量大。(4)傳統(tǒng)的 C/S 結(jié)構(gòu)的軟件需要針對(duì)不同的操作系統(tǒng)系統(tǒng)開(kāi)發(fā)不同版本的軟件,由于產(chǎn)品的更新?lián)Q代十分快,代價(jià)高和低效率已經(jīng)不適應(yīng)工作需要。在 JAVA 這樣的跨平臺(tái)語(yǔ)言出現(xiàn)之后,B/S 架構(gòu)更是猛烈沖擊 C/S,并對(duì)其形成威脅和挑戰(zhàn)。 第三章第三章 系統(tǒng)分析與設(shè)計(jì)系統(tǒng)分析與設(shè)計(jì)3.1 功能需求功能需求隨著 3G 時(shí)代的到來(lái),手機(jī)應(yīng)用越來(lái)越普遍,加之國(guó)民手機(jī)持有量更是爆炸式增長(zhǎng)。為了方便 Android 手機(jī)用戶能隨時(shí)隨地點(diǎn)到自己喜歡的菜品,提出一種操作簡(jiǎn)便,功能齊全,占用資源少,能為用戶節(jié)約流量的

35、的網(wǎng)上訂餐應(yīng)用,于是提出本系統(tǒng)的主要功能。需求界面如下:客戶端:1、登陸、注冊(cè)界面2、顯示菜品界面3、搜索菜品界面(按菜品名稱、種類、店鋪名稱進(jìn)行搜索)4、購(gòu)物車界面5、個(gè)人信息界面6、菜品詳情界面服務(wù)器端:1、登陸界面2、訂單管理、菜品管理、會(huì)員管理界面需求實(shí)現(xiàn)功能如下:客戶端:1、實(shí)現(xiàn)客戶端與服務(wù)器之間的連接2、實(shí)現(xiàn)登陸、注冊(cè)功能3、實(shí)現(xiàn)登陸后能瀏覽到服務(wù)器數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行一系列的操作4、能把菜品加入到購(gòu)物車,并結(jié)算生成訂單5、把生成的訂單信息傳回服務(wù)器端服務(wù)器端:1、實(shí)現(xiàn)管理員登陸2、實(shí)現(xiàn)添加、刪除、修改菜品信息3、實(shí)現(xiàn)對(duì)客戶端傳過(guò)來(lái)的訂單進(jìn)行處理4、實(shí)現(xiàn)添加、刪除會(huì)員列表功能模塊圖如

36、 3.1 所示:圖圖 3.1 系統(tǒng)功能模塊圖系統(tǒng)功能模塊圖3.2 模塊結(jié)構(gòu)與流程模塊結(jié)構(gòu)與流程3.2.1 客戶端客戶端表表 3.1 客戶端概要設(shè)計(jì)表客戶端概要設(shè)計(jì)表客戶端模塊客戶端模塊簡(jiǎn)要說(shuō)明簡(jiǎn)要說(shuō)明登陸模塊在連接上服務(wù)器的前提下登陸成功注冊(cè)模塊在連接上服務(wù)器的前提下注冊(cè)成功瀏覽菜品模塊從服務(wù)器中讀取數(shù)據(jù),并把數(shù)據(jù)封裝顯示在菜品列表中菜品詳情模塊點(diǎn)擊菜品進(jìn)入到菜品的詳細(xì)介紹和訂餐服務(wù)頁(yè)面搜索模塊按照用戶選擇的條件從手機(jī)數(shù)據(jù)庫(kù)中搜索菜品購(gòu)物車模塊當(dāng)用戶定了菜品之后,所有訂單信息都顯示在這個(gè)模塊中,并且點(diǎn)擊結(jié)算按鈕生成訂單傳送回服務(wù)器個(gè)人信息模塊顯示用戶的個(gè)人信息圖圖 3.2 客戶端流程圖客戶端流

37、程圖3.2.2 服務(wù)端服務(wù)端表表 3.2 服務(wù)器端概要設(shè)計(jì)表服務(wù)器端概要設(shè)計(jì)表服務(wù)器端模塊服務(wù)器端模塊簡(jiǎn)要說(shuō)明簡(jiǎn)要說(shuō)明登陸模塊提供管理員登陸訂單信息模塊顯示現(xiàn)有的訂單信息并給與處理按鈕菜品添加刪除修改模塊對(duì)要顯示在客戶端的菜品進(jìn)行添加刪除修改操作會(huì)員管理模塊對(duì)會(huì)員進(jìn)行添加和刪除以及查看信息圖圖 3.3 服務(wù)器流程圖服務(wù)器流程圖3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)組織和數(shù)據(jù)庫(kù)文件設(shè)計(jì)要根據(jù)不同用途,使用要求等,來(lái)決定數(shù)據(jù)庫(kù)的整體組織形式等一系列問(wèn)題。數(shù)據(jù)庫(kù),顧名思義,是存放數(shù)據(jù)的倉(cāng)庫(kù),只不過(guò)這個(gè)倉(cāng)庫(kù)是在計(jì)算機(jī)存儲(chǔ)設(shè)備上的,而且數(shù)據(jù)是按一定格式存放。數(shù)據(jù)庫(kù)中的數(shù)據(jù)按一定模型組織描述和存儲(chǔ)。具有較

38、小的重復(fù)度,較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)張性,并且可以被一定范圍內(nèi)的各種用戶共享。在涉及數(shù)據(jù)庫(kù)的軟件開(kāi)發(fā)中,需要根據(jù)有待解決的問(wèn)題性質(zhì),規(guī)模,以及所采用的前端程序創(chuàng)建工具等。做出合適的數(shù)據(jù)庫(kù)類型選擇。在該項(xiàng)目中建立了兩個(gè)數(shù)據(jù)庫(kù),客戶端和服務(wù)器各一個(gè),用這種設(shè)計(jì)方式主要是為用戶減少許多不必要的流量浪費(fèi),如果只創(chuàng)建一個(gè)服務(wù)器數(shù)據(jù)庫(kù)的話,用戶每次連接上服務(wù)器時(shí)都會(huì)將服務(wù)器的所有資源全部接受一遍,但是事實(shí)上該項(xiàng)目并不需要實(shí)時(shí)的更新數(shù)據(jù),因?yàn)橛行┎似返男畔⒖赡芎芫枚疾粫?huì)有變動(dòng),所以考慮在客戶端也創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)把服務(wù)器端發(fā)送過(guò)來(lái)的數(shù)據(jù)存儲(chǔ)在本地?cái)?shù)據(jù)庫(kù)中,當(dāng)服務(wù)器有更新時(shí)只需要傳遞改變的數(shù)據(jù)就可以實(shí)現(xiàn)更新。3.3

39、.1 數(shù)據(jù)庫(kù)表及其結(jié)構(gòu)數(shù)據(jù)庫(kù)表及其結(jié)構(gòu)服務(wù)器數(shù)據(jù)庫(kù)(SQL Server 2005)Admin 表:管理員編號(hào),用戶名,密碼,權(quán)限。BaseProducts 表:菜品編號(hào),菜品名字,菜品種類,菜品價(jià)格,菜品圖片。DetailOrders 表:訂單編號(hào),詳細(xì)編號(hào),菜品編號(hào),數(shù)量。DetailProducts 表:編號(hào),菜品編號(hào),菜品價(jià)格,菜品狀態(tài),折扣,菜品描述。Member 表:會(huì)員編號(hào),會(huì)員名字,會(huì)員密碼,會(huì)員性別,會(huì)員電話,會(huì)員地址,會(huì)員積分,會(huì)員金錢。Orders 表:訂單編號(hào),訂單生成時(shí)間,會(huì)員編號(hào),訂單狀態(tài)??蛻舳藬?shù)據(jù)庫(kù)(SQLite)Shoppingrecord 表:訂單編號(hào),詳細(xì)

40、編號(hào),菜品編號(hào),數(shù)量。Showedgoods 表:菜品編號(hào),菜品名字,菜品種類,菜品價(jià)格,菜品圖片。3.3.2 數(shù)據(jù)數(shù)據(jù)系統(tǒng) E-R(實(shí)體-聯(lián)系)圖用來(lái)描述數(shù)據(jù)關(guān)系模型,可以用來(lái)建立數(shù)據(jù)模型。本系統(tǒng)共有 8 個(gè)實(shí)體,其關(guān)系如圖 3.4 所示。圖圖 3.4 全局全局 E-R 圖圖下面列舉主要實(shí)體:管理員實(shí)體(Admin)包括管理員編號(hào)、管理員姓名(登錄姓名)、登錄密碼、管理員等級(jí)等屬性,如圖 3.5 所示。 管理員編號(hào)管理員姓名(登錄帳號(hào))登錄密碼管理員級(jí)別管理員表圖圖 3.5 管理員實(shí)體屬性圖管理員實(shí)體屬性圖會(huì)員實(shí)體(Member)包括會(huì)員編號(hào)、會(huì)員姓名(登錄帳號(hào))、登錄密碼、管理員性別,聯(lián)系

41、電話,聯(lián)系地址,會(huì)員積分等屬性。如圖 3.6 所示。 會(huì)員編號(hào)會(huì)員姓名(登錄帳號(hào))登錄密碼會(huì)員性別會(huì)員表聯(lián)系電話聯(lián)系地址會(huì)員積分圖圖 3.6 會(huì)員實(shí)體屬性圖會(huì)員實(shí)體屬性圖3.3.3 客戶端數(shù)據(jù)庫(kù)的連接客戶端數(shù)據(jù)庫(kù)的連接Andorid 數(shù)據(jù)庫(kù)存儲(chǔ)的位置在 data/data/databases/目錄下,Android是利用 ContentProvider 作為內(nèi)容提供商,SQLiteOpenHelper 數(shù)據(jù)庫(kù)幫助類來(lái)進(jìn)行對(duì)數(shù)據(jù)庫(kù)的創(chuàng)建和操作。程序中數(shù)據(jù)庫(kù)類為 MyopenHelper extends SQLiteOpenHelper(繼承關(guān)系) ,在此列出連接數(shù)據(jù)庫(kù)的代碼:public cla

42、ss MyopenHelper extends SQLiteOpenHelper / 生成表shoppingrecod,用以記錄購(gòu)買過(guò)的商品private static final String RECORD_TABLE = create table shoppingrecord (oid integer primary key ,doid integer,bid integer,donum integer);/ 生成表showedgoods,用以存儲(chǔ)上次購(gòu)買過(guò)的商品private static final String GOODS_TABLE = create table showedgoo

43、ds (bid integer primary key ,bname varchar,bstyle varchar,bprice float,bpicture varchar);/創(chuàng)建表public void onCreate(SQLiteDatabase db) db.execSQL(RECORD_TABLE);db.execSQL(GOODS_TABLE);/更新表public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) db.execSQL(drop table if exists shoppingr

44、ecord);db.execSQL(drop table if exists showedgoods);db.execSQL(RECORD_TABLE);db.execSQL(GOODS_TABLE);3.3.4 服務(wù)器數(shù)據(jù)庫(kù)的連接服務(wù)器數(shù)據(jù)庫(kù)的連接服務(wù)器端采用 SQL Server 2005 來(lái)創(chuàng)建數(shù)據(jù)庫(kù),首先得導(dǎo)入 sql2000_2005jdbc.jar 庫(kù)文件,然后在數(shù)據(jù)庫(kù)的配置工具中開(kāi)啟 SQL Server 服務(wù),接下來(lái)就要在 java 代碼中實(shí)現(xiàn)連接數(shù)據(jù)庫(kù)的功能了,代碼如下:public static Connection getCon() Connection con = nu

45、ll;if (!isInitialized) return con;try Class.forName(prop.getProperty(className);/連接數(shù)據(jù)庫(kù)語(yǔ)句,url user pwd都在配置文件sql.ini中con = DriverManager.getConnection(prop.getProperty(url), prop.getProperty(user), prop.getProperty(pwd); catch (Exception e) e.printStackTrace();return con;Sql.ini 配置文件內(nèi)容:className=com.m

46、icrosoft.sqlserver.jdbc.SQLServerDriverurl=jdbc:sqlserver:/localhost:1433;databaseName=Dinneruser=sapwd=1233.4 系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)本系統(tǒng)采用 HTTP 協(xié)議來(lái)進(jìn)行數(shù)據(jù)傳輸。采用 C/S 結(jié)構(gòu),客戶端為基于 Android操作系統(tǒng)平臺(tái)的智能手機(jī),主要的業(yè)務(wù)邏輯則服務(wù)器端來(lái)實(shí)現(xiàn),數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)服務(wù)器。3.4.1 部署圖部署圖系統(tǒng)部署如圖 3.7 所示,客戶端采用基于 Android 操作系統(tǒng)平臺(tái)的智能手機(jī),服務(wù)器端包括服務(wù)器、圖形界面化工具和數(shù)據(jù)庫(kù)服務(wù)器,主要處理業(yè)務(wù)邏輯和對(duì)數(shù)據(jù)的增刪改查

47、。圖圖 3.7 系統(tǒng)部署圖系統(tǒng)部署圖 3.4.2 類圖類圖根據(jù)已建立的用例圖確定要建立的對(duì)象類并確定屬性和操作。通過(guò)檢查類的定義,分析問(wèn)題的需求和運(yùn)用該領(lǐng)域知識(shí)來(lái)確定類的屬性。根據(jù)系統(tǒng)功能需求和系統(tǒng)設(shè)計(jì)需要確定類的操作,本系統(tǒng)有 6 個(gè)實(shí)體類,分別為管理員實(shí)體類(Admin) 、會(huì)員實(shí)體類(Member) 、訂單實(shí)體類(Orders) 、訂單詳情實(shí)體類(DetailOrders) 、商品實(shí)體類(Products) 、商品詳情實(shí)體類(DetailProducts) ,如圖 3.8 所示。+getAid() : int+setAid()+getAname() : string+setAname()

48、+getAcode() : string+setAcode()-aid : int-aname : string-acode : stringA Am mi in n+getBid() : int+setBid()+getBname() : string+setBname()+getBstyle() : string+setBstyle()+getBprice() : float+setBprice()+getBpicture() : string+setBpicture()-bid : int-bname : string-bstyle : string-bprice : float-bpi

49、cture : stringB Ba as se eP Pr ro od du uc ct ts s+getOid() : int+setOid()+getDoid() : int+setDoid()+getBid() : int+setBid()+getDonum() : int+setDonum()-oid : int-doid : int-bid : int-donum : intD De et ta ai il lO Or rd de er r+getDid() : int+setDid()+getBid() : int+setBid()+getDappraise() : float+

50、setDappraise()+getDstate() : int+setDstate()+getDdiscount() : int+setDdiscount()+getDcomment() : string+setDcomment()-did : int-bid : int-dappraise : float-dstate : int-ddiscount : int-dcomment : stringD De et ta ai il lP Pr ro od du uc ct ts s+getMid() : int+setMid()+getMname() : string+setMname()+

51、getMcode() : string+setMcode()+getMsex() : string+setMsex()+getMnumber() : string+setMnumber()+getMaddress() : string+setMaddress()+getMscore() : int+setMscore()+getMmoney() : float+setMmoney()-mid : int-mname : string-mcode : string-msex : string-mnumber : string-maddress : string-mscore : int-mmon

52、ey : floatM Me em mb be er r+getOid() : int+setOid()+getOtime() : string+setOtime()+getMid() : int+setMid()+getOstate() : int+setOstate()-oid : int-otime : string-mid : int-ostate : intO Or rd de er rs s 圖圖 3.8 實(shí)體類實(shí)體類3.5 執(zhí)行概念執(zhí)行概念本系統(tǒng)時(shí)序圖如圖 3.9 所示。圖圖 3.9 系統(tǒng)時(shí)序圖系統(tǒng)時(shí)序圖1、客戶端發(fā)送請(qǐng)求給服務(wù)器,服務(wù)器的后臺(tái) Servlet 負(fù)責(zé)處理數(shù)據(jù)。2、

53、服務(wù)器業(yè)務(wù)邏輯處理會(huì)調(diào)用 DAO,進(jìn)行數(shù)據(jù)處理。3、調(diào)用實(shí)體類,把數(shù)據(jù)保存到數(shù)據(jù)庫(kù) DB 中。4、DAO 返回結(jié)果給 Servlet。5、Servlet 把結(jié)果返回給客戶端。第第四四章章 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn)4.1 Android 環(huán)境搭建環(huán)境搭建任何事物要運(yùn)行,都要有它的環(huán)境,Android 也有它的環(huán)境才能夠運(yùn)行,下面介紹Android 的開(kāi)發(fā)環(huán)境配置.搭建開(kāi)發(fā)環(huán)境需要的軟件:1、操作系統(tǒng):Windows 7 或 Linux2、軟件包:Android SDK(Software Development kit Java Development kit) 、ADT(Android Develoop

54、ment Tool)3、IDE 環(huán)境:Eclipse IDE+ADT Eclipse3.3 以上4、JDK:Java Runtime Environment 虛擬機(jī) 、(JDK)Java Development kit安裝步驟如下:第一步:安裝 Java 虛擬機(jī) sun-java6-jdk 版本第二步:安裝 Eclipse3.5 工具 官網(wǎng) /downloads/選擇版本(圖 4.1):進(jìn)行安裝圖圖4.1 eclipse 下載下載第三步:安裝 Android SDK:首先要下載 SDK,可以在這個(gè)網(wǎng)址下載Http:/ ,如圖 4.2,選擇相應(yīng)的系統(tǒng)進(jìn)行

55、安裝圖圖4.2 SDK 下載下載第四步:安裝 Android ADT 插件運(yùn)行 Eclipse,選擇 help-install new software 選擇 add,將會(huì)彈出一個(gè)框,如圖4.3 所示圖圖4.3 ADT 的安裝的安裝 點(diǎn)擊 OK,選擇要安裝的軟件,占 next,然后選擇接受協(xié)議,直到安裝成功,重啟Eclipse 軟件,設(shè)置 Android SDK Home,Window-refrence圖圖4.4 設(shè)置設(shè)置 SDK 路徑路徑在 SDK location 中輸入 SDK Tools 路徑:D:androidandroid-sdk 點(diǎn)擊 OK這樣 Android 環(huán)境就已經(jīng)搭建成功

56、了。4.2 客戶端客戶端4.2.1 系統(tǒng)登錄系統(tǒng)登錄登陸模塊界面如圖4.5所示,顯示了一個(gè)登陸窗口,在其中加入許多控件,如文本輸入框(EditText) ,文本顯示框(TextView) ,單選按鈕(RaidoButton) ,復(fù)選按鈕(CheckBox)等,然后用一系列的布局將其有條理的放在這個(gè)窗口中。圖圖4.5 登陸窗口登陸窗口當(dāng)用戶點(diǎn)擊游客登陸時(shí),將不會(huì)跟服務(wù)器的數(shù)據(jù)庫(kù)進(jìn)行匹配,直接進(jìn)入主界面,代碼如下:if (flag) / 當(dāng)用戶選擇游客登陸時(shí)點(diǎn)擊登陸按鈕直接進(jìn)入主界面Intent intent = new Intent(LoginActivity.this,ProductListA

57、ctivity.class);startActivity(intent);Intent intent1 = new Intent(LoginActivity.this,UpdateService.class);startService(intent1);當(dāng)用戶點(diǎn)擊會(huì)員登陸時(shí),會(huì)把用戶輸入的數(shù)據(jù)跟服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行匹配,如果相同則登陸成功,否則彈出登陸失敗的信息。如果用戶點(diǎn)擊了記住密碼選項(xiàng),則把用戶輸入的用戶名和密碼都保存到SharedPreferences中。代碼如下:String name = etUsername.getText().toString().trim();String

58、 password = etPassword.getText().toString().trim();/ 包裝用戶發(fā)送的用戶數(shù)據(jù)Member member = new Member(name, password);protocolHelper.setObject(member);protocolHelper.setRequest(ProtocolHelper.REGISTER,ProtocolHelper.QUERY, member);result = protocolHelper.sendRequestVO();/ 向服務(wù)端發(fā)送數(shù)據(jù)if (result.size() 0) response

59、= result.get(0);/ 根據(jù)服務(wù)端的相應(yīng)信息進(jìn)行相應(yīng)判斷if (response != null) / 將用戶名存在sharedPreferencesEditor namedata = sharedPreferences.edit();namedata.putString(name, etUsername.getText().toString().trim();mit();/ 將密碼存在sharedPreferencesEditor passworddata = sharedPreferences.edit();passworddata.putString(password, et

60、Password.getText().toString().trim();mit();/ 登錄成功,進(jìn)入主界面 else / 登錄失敗,彈出錯(cuò)誤信息當(dāng)用戶點(diǎn)擊注冊(cè)按鈕時(shí),通過(guò)Android的Intent機(jī)制,就從登陸界面跳轉(zhuǎn)到注冊(cè)界面,接下來(lái)實(shí)現(xiàn)系統(tǒng)注冊(cè)的功能。4.2.2 系統(tǒng)注冊(cè)系統(tǒng)注冊(cè)注冊(cè)界面如圖4.6,跟登陸界面一下,它也有一個(gè)屬于它的布局文件來(lái)擺放這些控件,在此模塊中必須要輸入正確這些注冊(cè)信息,才能正常的進(jìn)行注冊(cè)。圖圖4.6 注冊(cè)界面注冊(cè)界面當(dāng)用戶點(diǎn)擊取消按鈕時(shí),界面會(huì)跳轉(zhuǎn)回到登陸界面,當(dāng)用戶點(diǎn)擊注冊(cè)按鈕時(shí)會(huì)跟服務(wù)器端的數(shù)據(jù)庫(kù)進(jìn)行連接,把用戶所填的信息拼接發(fā)給服務(wù)器,服務(wù)器處理過(guò)后將數(shù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論