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


    前几天有网友要我写一篇关于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>   
        
<![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,就这么简单,呵呵,赶快运行,看看效果呢。

相关内容