李松泰+梁家輝
摘要:近年來,Android平臺憑借其穩(wěn)定性和開放性吸引了大量的用戶與開發(fā)者,成為了目前發(fā)展最快、用戶最多的移動智能操作系統(tǒng)。鑒于其平臺移動APP開發(fā)的迅速發(fā)展,為了實現(xiàn)手機端與服務(wù)器端更好的交互性,改文在“嘗鮮”APP項目開發(fā)的基礎(chǔ)上,闡述了如何合理地設(shè)計手機應(yīng)用的服務(wù)器端。
關(guān)鍵詞:Android;服務(wù)器;MYSQL數(shù)據(jù)庫;Java編程語言
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2017)32-0099-02
Design of APP Server Side Based on Android
LI Song-tai, LIANG Jia-hui
(Institute of Information Science and Technology South China Business College Guangdong University of Foreign Studies , Guangzhou 510545, China)
Abstract: In recent years, Android platform has attracted a large number of users and developers with its stability and openness, and has become the fastest developing and most mobile intelligent operating system.Because of the rapid development of the mobile APP development platform, in order to realize the mobile phone end and the server end better interactivity, this paper is Based on the "early adopters of APP project development, expounds how to design reasonable mobile phone application server.
Key words:Android; server; MYSQL database; Java programming language
1 概述
“嘗鮮”APP可以讓用戶群體方便快捷地體驗到一些廠商新推出的產(chǎn)品試用。該APP可以在新產(chǎn)品正式面市之前,讓用戶提前試用產(chǎn)品,并從中收集到用戶的反饋和意見;同時根據(jù)反饋信息來推測消費者對產(chǎn)品的興趣,預(yù)測產(chǎn)品的市場需求程度。此外,它還利用分眾理念,根據(jù)用戶提供的信息對消費人群進行劃分,減少甚至避免因盲目推廣和消費者定位失誤、新產(chǎn)品市場定位失敗等給廠商帶來的損失。作為一個擁有交互功能的應(yīng)用程序,它的服務(wù)器和數(shù)據(jù)庫是必不可少的。出于對手機端和服務(wù)器端響應(yīng)性能的考慮,本文作者決定使用Apache 旗下的tomcat作為應(yīng)用服務(wù)器,使用Java語言基于eclipse IDE來開發(fā),并通過MYSQL數(shù)據(jù)庫設(shè)計數(shù)據(jù)表。
2 服務(wù)器端需求分析
“嘗鮮”APP是一款試用品領(lǐng)取機的配套軟件,用戶通過掃碼來領(lǐng)取商品試用。根據(jù)其功能的特性,服務(wù)器端要實現(xiàn)的功能如下:
1) 實現(xiàn)和客戶端的數(shù)據(jù)交互;
2) 實現(xiàn)和數(shù)據(jù)庫的連接功能;
3) 收到客戶端發(fā)來的請求時,有相對應(yīng)的代碼實現(xiàn)。
剔除部分使用頻率較低的功能需求,最終得到的“嘗鮮”APP客戶端用例圖
3 服務(wù)器交互原理
在本地通過tomcat搭建服務(wù)器,在服務(wù)器src文件夾中編寫好請求處理的java代碼文件,當(dāng)客戶端請求發(fā)來時,通過struts2框架對請求進行解析,并跳轉(zhuǎn)到與請求對應(yīng)的java代碼文件,如果涉及數(shù)據(jù)庫操作則通過對應(yīng)的mysql連接代碼連接到對應(yīng)的數(shù)據(jù)庫對數(shù)據(jù)進行訪問,最后在java代碼文件中將處理結(jié)果返回給客戶端。
Struts2是一個基于MVC設(shè)計模式的Web應(yīng)用框架,它本質(zhì)上相當(dāng)于一個servlet,在MVC設(shè)計模式中,Struts2作為控制器(Controller)來建立模型與視圖的數(shù)據(jù)交互。
上面代碼中,客戶端發(fā)來獲取主界面商品信息的請求getGoods,struts2框架進行解析后會跳轉(zhuǎn)到處理代碼,處理代碼中使用HttpServletRequest獲取客戶端發(fā)來的帶有標(biāo)識的字符串信息,然后根據(jù)獲取的信息,進行數(shù)據(jù)庫的查詢操作。查詢完畢并獲結(jié)果后,通過HttpServletResponse將結(jié)果信息返回給客戶端[1]。
4 “嘗鮮”APP的數(shù)據(jù)庫設(shè)計
由于本次創(chuàng)新項目的“嘗鮮”APP需要能夠?qū)崿F(xiàn)本地和服務(wù)器端數(shù)據(jù)交互的功能,因此謹慎設(shè)計一個合理的數(shù)據(jù)庫很有必要。為了將用戶的數(shù)據(jù)要求清楚、準確描述出來,本文作者結(jié)合APP的模塊功能設(shè)計,得出項目的實體-聯(lián)系圖,如圖2所示[2]。
為了該APP的數(shù)據(jù)流程要求清楚、準確的描述出來,本文作者依據(jù)已知的信息得出此軟
“嘗鮮”APP要實現(xiàn)數(shù)據(jù)存儲的需求主要有:對于用戶的注冊信息存儲、試用商品的數(shù)據(jù)存儲、用戶評論數(shù)據(jù)儲存和對應(yīng)用戶的領(lǐng)取記錄的數(shù)據(jù)存儲。根據(jù)這個需求設(shè)計的數(shù)據(jù)庫,主要包含四張表,四張表分別包含有用戶信息表,試用商品信息表,用戶評論表以及用戶領(lǐng)取記錄表。其中用戶信息表主要是記錄包含了用戶的個人信息,試用商品信息表主要是記錄了對應(yīng)商品的各種信息,用戶評論表主要是記錄了各種用戶對該商品的評論信息,用戶領(lǐng)取記錄表主要是記錄了用戶領(lǐng)取的試用商品的信息。限于篇幅,本文只列舉兩個表的具體設(shè)計情況。商品信息表的設(shè)計如表1所示,用戶領(lǐng)取記錄表的設(shè)計如表2所示[3]。endprint
5 系統(tǒng)實現(xiàn)
當(dāng)用戶打開軟件后,后臺會自動從服務(wù)器上獲取商品數(shù)據(jù),顯示到APP界面上。服務(wù)器端的關(guān)鍵代碼實現(xiàn)如下[4]:
//設(shè)定一個List用來裝入從數(shù)據(jù)庫獲取的數(shù)據(jù)
List
//連接數(shù)據(jù)庫并設(shè)定查找條件。
Connection connect = DatabaseConnect.getConnection()
Statement statement = connect.createStatement();
String sql = "select * from goods";
ResultSet result = statement.executeQuery(sql);
//將得到的數(shù)據(jù)逐條獲取,并加入一開始設(shè)置的List中
while (result.next()) {
String title = result.getString("title");
String price = result.getString("price");
String number = result.getString("number");
String url = result.getString("url");
intid = result.getInt("id");
Goods good = new Goods(title,number,price,url,id);
goods.add(good);
}
returngoods;
6 結(jié)束語
隨著整個社會信息化程度的不斷加深,基于Android平臺的應(yīng)用程序的不斷更新發(fā)展,其中擁有交互功能的應(yīng)用必定會成為最受用戶群體歡迎的APP。因此,一個擁有交互功能的應(yīng)用程序開發(fā)中只有搭建一個合適的服務(wù)器端以及構(gòu)建完善的數(shù)據(jù)庫,才能讓應(yīng)用程序有更好的邏輯性?!皣L鮮”是一款交互型的APP,無論是實時數(shù)據(jù)還是歷史數(shù)據(jù),它都有對數(shù)據(jù)進行快速抓取和處理的功能,相信隨著智能時代的到來,擁有交互功能的APP必將成為主流。
參考文獻:
[1] 劉望舒.Android進階之光[M]. 北京:電子工業(yè)出版社, 2017.
[2] 劉增杰.MySQL5.7從入門到精通[M]. 北京:清華大學(xué)出版社, 2016.
[3] Baron Schwartz,Peter Zaitsev.高性能MySQL[M].3版,北京: 電子工業(yè)出版社, 2013
[4] Bill Phillips,Chris.Android編程權(quán)威指南[M].3版,北京: 人民郵電出版社, 2017.