我的环境为: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; } }
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
接下来设置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>-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
大工告成,再贴一下效果图:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
您的十分满意是我追求的宗旨。
您的一点建议是我后续的动力。