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