Flex与java交互之数据库数据读取

[转载:版权归原创所有 http://hi.baidu.com/giver/blog/item/de128602ba9ccd074afb517a.html]
前几天有网友要我写一篇关于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;  
        }  
    }  
} 

 

 

  接下来是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>  
        <![CDATA[  
            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,就这么简单,呵呵,赶快运行,看看效果呢。

你可能感兴趣的:(java)