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