探索JSON格式封裝的使用方法
在JSON格式封裝應(yīng)用程序中處理完數(shù)據(jù)后,可以將數(shù)據(jù)返回 PHP 腳本并用 json_decode() 重新創(chuàng)建可用的對(duì)象數(shù)據(jù)結(jié)構(gòu),然需要按照json格式解碼等,后面在介紹。接著看看那個(gè)更新數(shù)據(jù)的方法。
在網(wǎng)上搜索了找到一篇用JSON格式封裝方法:具體請(qǐng)參考:Using Flex, PHP, and JSON to Modify a MySQL Database。寫(xiě)的非常的簡(jiǎn)單明白,可惜的是自己沒(méi)學(xué)過(guò)PHP。無(wú)法按照例子上完整的去實(shí)現(xiàn),所以我把它更改用Java-Json的方法來(lái)實(shí)現(xiàn)同樣的功能。
首先來(lái)看下這個(gè)例子的界面功能設(shè)計(jì):包含一個(gè)dataGrid控件,兩個(gè)按鈕(讀取和更新數(shù)據(jù))以及一個(gè)Label控件用來(lái)提示用戶操作的結(jié)果。dataGrid包含四個(gè)列:?jiǎn)T工的編號(hào),姓名,性別以及部門。其中姓名這個(gè)列是可以編輯修改的:編輯后通過(guò)檢查后,按更新按鈕更新數(shù)據(jù)庫(kù)。#t#
接著來(lái)看下工作流程:Flex app是通過(guò)JSON格式封裝方式與后臺(tái)的java bean溝通的,然后在由java bean連接mysql database,讀取或更新數(shù)據(jù)。然后返回給flex app. 由于使用blazeDS,flex app可以直接調(diào)用java 的方法,所以發(fā)送請(qǐng)求和接受數(shù)據(jù)都變的簡(jiǎn)單了。
那么,我門開(kāi)始工作了。首先,創(chuàng)建一個(gè)數(shù)據(jù)庫(kù):在mysql提示框中輸入以下的SQL就可以創(chuàng)建一個(gè)簡(jiǎn)單的員工信息資料表。我們來(lái)先看看那后臺(tái)java bean的處理:他要接受flex app的讀取數(shù)據(jù)和更新數(shù)據(jù)的請(qǐng)求,而且他們之間的數(shù)據(jù)傳遞格式采用的是json.所以我們的JSON格式封裝的一個(gè)框架結(jié)構(gòu)應(yīng)該是:
- public class JsonGrid {
- private Connection con = null;
- private String myDriver = "com.mysql.jdbc.Driver";
- private String conURL = "jdbc:mysql://localhost:3306/test";
- private String userName = "root";
- private String userPass = "12345";
- public Connection conToDB(){
- try{
- Class.forName(myDriver);
- con = DriverManager.getConnection(conURL,userName,userPass);
- }catch(Exception e){
- e.printStackTrace();
- }
- return con;
- }
- public String getJsonArray(){
- String result= new String();
- return result;
- }
- public String sendJsonArray(String jsonData){
- String result= new String();
- return result;
- }
- }
里面包含了兩個(gè)重要的方法(getJsonArray()和sendJsonArray())分別對(duì)應(yīng)flex app的讀取數(shù)據(jù)和更新數(shù)據(jù)的請(qǐng)求。在getJsonArray()方法中,要連接數(shù)據(jù)庫(kù),取得員工的信息資料,然后按照json格式封裝數(shù)據(jù),結(jié)果返回給flex app,由flex app中的datagrid顯示出來(lái)。