?嘿,先向大家宣传下我站啊,http://www.lovestblog.cn/,这是我的个人博客,希望大家常来我博客坐坐呢,相信大家也会有所收益的,不过我也不会放弃javaeye的,我也会一直在这里写东西的。 (转载的请不要删除该段,谢谢合作)
???????? 前几天有网友要我写一篇关于flex与数据库交互的例子,一直由于时间紧没能写,今天晚上特地花点时间写了个例子,希望能给大家一点帮助,其实flex与数据库交互很简单的,我主要是通过java与数据库交互读取数据,然后flex和java进行交互,把java读取的数据在flex前端显示出来,好了,说了一堆废话,下面代码说明问题。
??????? 对于建立一个flex web应用的步骤我就不多说了哈。
??????? 首先要求大家到数据库建立一个数据库,在我这例子中数据库名为userDb,建立一个表userInfo,里面设置两个字段一个为id,一个为name。
??????? 第二,创建以下java代码在src目录下

User.java???

package
?org.rjb.java;???

??


public
?
class
?User?

{???

????private?String?name;???

??


????public?String?getName()?
{???

????????return?name;???

????}???


????public?void?setName(String?name)
{???

????????this.name=name;???

????}???

}
???

??

UserDao.java???

package
?org.rjb.java;???

??

import
?java.sql.Connection;???

import
?java.sql.DriverManager;???

import
?java.sql.ResultSet;???

import
?java.sql.SQLException;???

import
?java.sql.Statement;???

import
?java.util.ArrayList;???

import
?java.util.List;???

??


public
?
class
?UserDao?

{???

???????


????public?static?Connection?getConnection()
{???

????????Connection?c=null;???


????????try
{???

????????????String?driver="com.mysql.jdbc.Driver";???

????????????String?url="jdbc:mysql://localhost:3306/userDb";???

????????????String?username="root";???

????????????String?password="1235";???

????????????Class.forName(driver);???

????????????c=DriverManager.getConnection(url,username,password);????


????????}catch(Exception?e)
{???

????????????System.out.println(e.getMessage());???

????????}???

????????return?c;???

????}???


????public?List?getAllUser()throws?SQLException
{???

????????Connection?c=getConnection();???

????????Statement?st=c.createStatement();???

????????ResultSet?rs=st.executeQuery("select?*?from?UserInfo");???

????????ArrayList?userList=new?ArrayList<User>();???


????????while(rs.next())
{???

????????????User?u=new?User();???

????????????u.setName(rs.getString("name"));???

????????????userList.add(u);???

????????}???

????????return?userList;???

????}???

??

}
??

以上是java端的全部代码了,下面是flex端的代码。
??? 第三,创建以下代码在flex_src下:

User.as???

package
?org.rjb.flex???



{???

????[RemoteClass(alias="org.rjb.java.User")]???

????public?class?User???


????
{???

????????private?var?_name:String;???

????????public?function?User()???


????????
{???

????????}???


????????public?function?get?name():String
{???

????????????return?this._name;???

????????}???


????????public?function?set?name(name:String):void
{???

????????????this._name=name;???

????????}???

????}???

}
??


User.as

package
?org.rjb.flex



{

????[RemoteClass(alias="org.rjb.java.User")]

????public?class?User


????
{

????????private?var?_name:String;

????????public?function?User()


????????
{

????????}


????????public?function?get?name():String
{

????????????return?this._name;

????????}


????????public?function?set?name(name:String):void
{

????????????this._name=name;

????????}

????}

}

接下来是mxml代码,也就是我们真正展示我们数据的界面

FlexWithJava.mxml???

<?
xml?version="1.0"?encoding="utf-8"
?>
???

<
mx:Application?
xmlns:mx
="http://www.adobe.com/2006/mxml"
?layout
="vertical"
>
???

????
<
mx:RemoteObject?
id
="ud"
?destination
="UserDao"
?result
="onResult(event)"
?fault
="onFault()"
?
/>
???

????
<
mx:DataGrid?
dataProvider
="{users}"
>
???

????????
<
mx:columns
>
???

????????????
<
mx:DataGridColumn?
dataField
="name"
?headerText
="name"
?
/>
???

????????
</
mx:columns
>
???

????
</
mx:DataGrid
>
???

????
<
mx:Label?
id
="info"
?
/>
???

????
<
mx:Button?
label
="click"
?click
="clickFun()"
?
/>
???

????
<
mx:Script
>
???

????????
<
????????????import?mx.collections.ArrayCollection;???

????????????import?mx.rpc.events.ResultEvent;???

????????????[Bindable]???

????????????public?var?users:ArrayCollection=new?ArrayCollection();???

????????????public?function?clickFun():void{???

????????????????ud.getAllUser();???

????????????}???

????????????public?function?onResult(event:ResultEvent):void{???

????????????????users=ArrayCollection(event.result);???

????????????????info.text="get?data?successfully";???

????????????}???

????????????public?function?onFault():void{???

????????????????info.text="Error";???

????????????}???

????????
]]>
???

????
</
mx:Script
>
???

</
mx:Application
>
??

???? ?第四,配置remoting-config.xml,在里面加上如下配置文件:

<
destination?
id
="UserDao"
>
???

?????
<
properties
>
???

??????????
<
source
>
org.rjb.java.UserDao
</
source
>
???

?????
</
properties
>
???

</
destination
>
???? ok,就这么简单,呵呵,赶快运行,看看效果呢。