李松泰+梁家輝
摘要:近年來,Android平臺憑借其穩(wěn)定性和開放性吸引了大量的用戶與開發(fā)者,成為了目前發(fā)展最快、用戶最多的移動智能操作系統(tǒng)。鑒于其平臺移動APP開發(fā)的迅速發(fā)展,為了實現(xiàn)手機端與服務器端更好的交互性,改文在“嘗鮮”APP項目開發(fā)的基礎上,闡述了如何合理地設計手機應用的服務器端。
關鍵詞:Android;服務器;MYSQL數(shù)據(jù)庫;Java編程語言
中圖分類號:TP311 文獻標識碼: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)品的興趣,預測產(chǎn)品的市場需求程度。此外,它還利用分眾理念,根據(jù)用戶提供的信息對消費人群進行劃分,減少甚至避免因盲目推廣和消費者定位失誤、新產(chǎn)品市場定位失敗等給廠商帶來的損失。作為一個擁有交互功能的應用程序,它的服務器和數(shù)據(jù)庫是必不可少的。出于對手機端和服務器端響應性能的考慮,本文作者決定使用Apache 旗下的tomcat作為應用服務器,使用Java語言基于eclipse IDE來開發(fā),并通過MYSQL數(shù)據(jù)庫設計數(shù)據(jù)表。
2 服務器端需求分析
“嘗鮮”APP是一款試用品領取機的配套軟件,用戶通過掃碼來領取商品試用。根據(jù)其功能的特性,服務器端要實現(xiàn)的功能如下:
1) 實現(xiàn)和客戶端的數(shù)據(jù)交互;
2) 實現(xiàn)和數(shù)據(jù)庫的連接功能;
3) 收到客戶端發(fā)來的請求時,有相對應的代碼實現(xiàn)。
剔除部分使用頻率較低的功能需求,最終得到的“嘗鮮”APP客戶端用例圖
3 服務器交互原理
在本地通過tomcat搭建服務器,在服務器src文件夾中編寫好請求處理的java代碼文件,當客戶端請求發(fā)來時,通過struts2框架對請求進行解析,并跳轉到與請求對應的java代碼文件,如果涉及數(shù)據(jù)庫操作則通過對應的mysql連接代碼連接到對應的數(shù)據(jù)庫對數(shù)據(jù)進行訪問,最后在java代碼文件中將處理結果返回給客戶端。
Struts2是一個基于MVC設計模式的Web應用框架,它本質上相當于一個servlet,在MVC設計模式中,Struts2作為控制器(Controller)來建立模型與視圖的數(shù)據(jù)交互。
上面代碼中,客戶端發(fā)來獲取主界面商品信息的請求getGoods,struts2框架進行解析后會跳轉到處理代碼,處理代碼中使用HttpServletRequest獲取客戶端發(fā)來的帶有標識的字符串信息,然后根據(jù)獲取的信息,進行數(shù)據(jù)庫的查詢操作。查詢完畢并獲結果后,通過HttpServletResponse將結果信息返回給客戶端[1]。
4 “嘗鮮”APP的數(shù)據(jù)庫設計
由于本次創(chuàng)新項目的“嘗鮮”APP需要能夠實現(xiàn)本地和服務器端數(shù)據(jù)交互的功能,因此謹慎設計一個合理的數(shù)據(jù)庫很有必要。為了將用戶的數(shù)據(jù)要求清楚、準確描述出來,本文作者結合APP的模塊功能設計,得出項目的實體-聯(lián)系圖,如圖2所示[2]。
為了該APP的數(shù)據(jù)流程要求清楚、準確的描述出來,本文作者依據(jù)已知的信息得出此軟
“嘗鮮”APP要實現(xiàn)數(shù)據(jù)存儲的需求主要有:對于用戶的注冊信息存儲、試用商品的數(shù)據(jù)存儲、用戶評論數(shù)據(jù)儲存和對應用戶的領取記錄的數(shù)據(jù)存儲。根據(jù)這個需求設計的數(shù)據(jù)庫,主要包含四張表,四張表分別包含有用戶信息表,試用商品信息表,用戶評論表以及用戶領取記錄表。其中用戶信息表主要是記錄包含了用戶的個人信息,試用商品信息表主要是記錄了對應商品的各種信息,用戶評論表主要是記錄了各種用戶對該商品的評論信息,用戶領取記錄表主要是記錄了用戶領取的試用商品的信息。限于篇幅,本文只列舉兩個表的具體設計情況。商品信息表的設計如表1所示,用戶領取記錄表的設計如表2所示[3]。endprint
5 系統(tǒng)實現(xiàn)
當用戶打開軟件后,后臺會自動從服務器上獲取商品數(shù)據(jù),顯示到APP界面上。服務器端的關鍵代碼實現(xiàn)如下[4]:
//設定一個List用來裝入從數(shù)據(jù)庫獲取的數(shù)據(jù)
List
//連接數(shù)據(jù)庫并設定查找條件。
Connection connect = DatabaseConnect.getConnection()
Statement statement = connect.createStatement();
String sql = "select * from goods";
ResultSet result = statement.executeQuery(sql);
//將得到的數(shù)據(jù)逐條獲取,并加入一開始設置的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 結束語
隨著整個社會信息化程度的不斷加深,基于Android平臺的應用程序的不斷更新發(fā)展,其中擁有交互功能的應用必定會成為最受用戶群體歡迎的APP。因此,一個擁有交互功能的應用程序開發(fā)中只有搭建一個合適的服務器端以及構建完善的數(shù)據(jù)庫,才能讓應用程序有更好的邏輯性?!皣L鮮”是一款交互型的APP,無論是實時數(shù)據(jù)還是歷史數(shù)據(jù),它都有對數(shù)據(jù)進行快速抓取和處理的功能,相信隨著智能時代的到來,擁有交互功能的APP必將成為主流。
參考文獻:
[1] 劉望舒.Android進階之光[M]. 北京:電子工業(yè)出版社, 2017.
[2] 劉增杰.MySQL5.7從入門到精通[M]. 北京:清華大學出版社, 2016.
[3] Baron Schwartz,Peter Zaitsev.高性能MySQL[M].3版,北京: 電子工業(yè)出版社, 2013
[4] Bill Phillips,Chris.Android編程權威指南[M].3版,北京: 人民郵電出版社, 2017.