我的環境為:Flash Builder4.6+MyEclipse10.6+MySQL5.6+32位Win7旗艦版
參考文章:
http://kb.cnblogs.com/page/77057/
http://blog.csdn.net/sunchunmei555/article/details/6913883
------------------------------------------------------------------------------------------------------------------------------------------------------------------
初學Flex,在此做下筆記,我使用BlazeDS來通路伺服器資料。
這例子是擷取MySQL資料庫表中的一條記錄,并顯示出來,效果如下:

看完效果,接下來我簡單的說下實作過程。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
首先是MySQL資料庫表的建立,為友善測試,表中就一條記錄。
資料庫名:test 表名:tbAdmin
截圖如下:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
弄好資料庫後,我們就可以用MyEclipse建立web工程了,建好web工程後,我們需要下載下傳BlazeDS.jar包來搭建BlazeDS環境,
BlazeDS.jar下載下傳位址:http://download.csdn.net/detail/friendan/6593275
下載下傳好BlazeDS.jar後,解壓,得到兩個檔案夾:META-INF和WEB-INF
将解壓得到的兩個檔案夾META-INF和WEB-INF複制到web工程的WebRoot目錄,覆寫掉原來的兩個同名檔案夾,
這樣BlazeDS環境,就搭建好了,簡單吧。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
簡言之,用BlazeDS.jar解壓得到的兩個檔案夾META-INF和WEB-INF覆寫掉web工程的兩個同名檔案夾,
BlazeDS環境就搭建好了,很簡單的。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
BlazeDS環境搭建好後,我們就可以編寫一個java類來擷取資料庫表中的記錄了,我寫的java類代碼如下:
import bean.Admin;
import dao.AdminDAO;
public class AdminDAOImpl implements AdminDAO{
@Override
public List<Admin> GetAllAdmin() {
// TODO Auto-generated method stub
return null;
}
@Override
public Admin GetAdmin(int id) {
try {
String sql="select * from tbAdmin where id='1'";
sql=sql.replace("1",String.valueOf(id));
//System.out.println(sql);
ResultSet rs=DbCRUD.Select(sql);
int row=0;
Admin admin=new Admin();
while(rs.next())
{
admin.setId(rs.getInt("id"));
admin.setUsrName(rs.getString("usrName"));
admin.setUsrPass(rs.getString("usrPass"));
//System.out.println(rs.getString(1)+"---"+rs.getString(2));
}
return admin;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
上面這個類有一個方法,public Admin GetAdmin(int id),我就是在Flex中調用這個方法來擷取MySQL資料庫資料的。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
接下來設定remoting-config.xml,這樣Flex才可以通路我們以上編寫的java類AdminDAOImpl,設定代碼如下:
<destination id="adminDAOImpl">
<properties>
<source>dao.impl.AdminDAOImpl</source>
</properties>
</destination>
截圖如下:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
好,以上就是伺服器端的主要設定和代碼了,接下來可以進行Flex開發了。
-------------------------------------------------------------------------------------------------------------------------
導入用到的Flex包:
<fx:Script>
<![CDATA[
//導入程式用到的包
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
]]>
</fx:Script>
---------------------------------------------------------------------------------------------------------------------------------------------------
遠端對象聲明和回調方法:
注意<s:RemoteObject .../>标簽中的destination="adminDAOImpl",要與remoting-config.xml檔案配置中的保持一緻,
具體請看前文。
<fx:Declarations>
<!-- 将非可視元素(例如服務、值對象)放在此處 -->
<s:RemoteObject id="roAdmin" destination="adminDAOImpl">
<s:method name="GetAdmin" result="rstGetAdmin(event)" fault="fltGetAdmin(event)"/>
</s:RemoteObject>
</fx:Declarations>
<fx:Script>
<![CDATA[
//調用遠端方法GetAdmin(int id)成功時
private function rstGetAdmin(event:ResultEvent):void
{
var str:String =String(event.result.id); //使用者id
str+=" ";
str+=event.result.usrName;//使用者名
str+=" ";
str+=event.result.usrPass;//使用者密碼
Alert.show(str);
}
//調用遠端方法GetAdmin(int id)失敗時
private function fltGetAdmin(event:FaultEvent):void
{
Alert.show(event.message.toString());//顯示錯誤資訊
}
]]>
</fx:Script>
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
最後就是調用遠端對象了中的方法了:
<fx:Script>
<![CDATA[
//登陸按鈕
protected function btnLogin_clickHandler(event:MouseEvent):void
{
this.roAdmin.GetAdmin(1);//調用遠端對象的方法:public Admin GetAdmin(int id)
}
]]>
</fx:Script>
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
大工告成,再貼一下效果圖:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
您的十分滿意是我追求的宗旨。
您的一點建議是我後續的動力。