flex通过blazeds与java实现增删改查-整个实现流程

3 篇文章 0 订阅
1 篇文章 0 订阅

1,建一个userdb库,再建userinfo表,字段:id(int),username(varchar),password(varchar)。

2,DBConnection.java

    package com.datainfo;  
 
  import java.sql.Connection;  
  import java.sql.DriverManager;  
  import java.sql.SQLException;  
 
public class DBConnection {  
    public static Connection getConnection() throws ClassNotFoundException,  
            SQLException {  
        Connection conn = null;  
        String driver = "com.mysql.jdbc.Driver";  
        String url = "jdbc:mysql://localhost:3306/userdb";      //不同数据库不同JDBC
        String username = "sa";  
        String password = "sasa";  
        Class.forName(driver);  
        conn = DriverManager.getConnection(url, username, password);  
        return conn;  
    }  

 

3,User.java

    package com.datainfo;  
 
public class User {  
    private int id;  
    private String username;  
    private String password;  
 
    public User() {  
          
    }  
 
    /** 
     * @return the id 
     */ 
    public int getId() {  
        return id;  
    }  
 
    /** 
     * @param id 
     *            the id to set 
     */ 
    public void setId(int id) {  
        this.id = id;  
    }  
 
    /** 
     * @return the username 
     */ 
    public String getUsername() {  
        return username;  
    }  
 
    /** 
     * @param username 
     *            the username to set 
     */ 
    public void setUsername(String username) {  
        this.username = username;  
    }  
 
    /** 
     * @return the password 
     */ 
    public String getPassword() {  
        return password;  
    }  
 
    /** 
     * @param password 
     *            the password to set 
     */ 
    public void setPassword(String password) {  
        this.password = password;  
    }  

 

4,UserDAO.java

   DAO层实现增、删、改、查方法

  package com.datainfo;  
 
import java.sql.Connection;  
import java.sql.PreparedStatement;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
import java.sql.Statement;  
import java.util.ArrayList;  
 
import com.datainfo.DBConnection;  
 

//查询
public class UserDAO {  
    public ArrayList getUserList() throws ClassNotFoundException, SQLException {  
        Connection conn = DBConnection.getConnection();  
        Statement stmt = conn.createStatement();  
        ResultSet rs = stmt.executeQuery("select * from userinfo");  
        ArrayList userList = null;  
        try {  
            userList = new ArrayList();  
            while (rs.next()) {  
                User user = new User();  
                user.setId(rs.getInt("id"));  
                user.setUsername(rs.getString("username"));  
                user.setPassword(rs.getString("password"));  
                userList.add(user);  
            }  
            rs.close();  
            stmt.close();  
            conn.close();  
        } catch (Exception e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
        return userList;  
    }  


  //增加
    public void addUser(User user) throws ClassNotFoundException, SQLException {  
        Connection conn = DBConnection.getConnection();  
        String sql = "insert into userinfo (username,password) values (?,?)";  
        try {  
            PreparedStatement pstmt = conn.prepareStatement(sql);  
            pstmt.setString(1, user.getUsername());  
            pstmt.setString(2, user.getPassword());  
            pstmt.executeUpdate();  
            pstmt.close();  
            conn.close();  
        } catch (Exception e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
    }  
 

//修改
    public void updataUser(User user) throws ClassNotFoundException,  
            SQLException {  
        Connection conn = DBConnection.getConnection();  
        String sql = "update userinfo set username=?,password=? where id=?";  
        try {  
            PreparedStatement pstmt = conn.prepareStatement(sql);  
            pstmt.setString(1, user.getUsername());  
            pstmt.setString(2, user.getPassword());  
            pstmt.setInt(3, user.getId());  
            pstmt.executeUpdate();  
            pstmt.close();  
            conn.close();  
        } catch (Exception e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
    }  
 

//删除
    public void deleteUser(User user) throws ClassNotFoundException,  
            SQLException {  
        Connection conn = DBConnection.getConnection();  
        String sql = "delete from userinfo where id =?";  
        try {  
            PreparedStatement pstmt = conn.prepareStatement(sql);  
            pstmt.setInt(1, user.getId());  
            pstmt.executeUpdate();  
            pstmt.close();  
            conn.close();  
        } catch (Exception e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
    }  

 

 

5,配置文件remoting-config.xml

   <?xml version="1.0" encoding="UTF-8"?> 
<service id="remoting-service" class="flex.messaging.services.RemotingService"> 
 
    <adapters> 
        <adapter-definition id="java-object" 
            class="flex.messaging.services.remoting.adapters.JavaAdapter" 
            default="true" /> 
    </adapters> 
 
    <default-channels> 
        <channel ref="my-amf" /> 
    </default-channels> 
 

/*指定blazeds所使用的java类*/
    <destination id="userDao"> 
        <properties> 
            <source>com.datainfo.UserDAO</source> 
        </properties> 
    </destination> 
</service> 

   

6,以下是flex端,UserFlex.as

  package com.flex  
{  
    [Bindable]  
    [RemoteClass(alias="com.datainfo.User")]  
    public class UserFlex  
    {  
//      public function UserFlex{  
//            
//      }  
        public var id:int;  
        public var username:String;  
        public var password:String;  


//      如果用private,就需要写上get/set  
//        
//      public function get id():int{  
//          return this.id;  
//      }  
//      public function set id():int{  
//          this.id = id;  
//      }  
//        
//      public function get username():String{  
//          return this.username;  
//      }  
//      public function set username():String{  
//          this.username = username;  
//      }  
//        
//      public function get password():String{  
//          return this.password;  
//      }  
//      public function set password():String{  
//          this.password = password;  
//      }  
    }  

 

7,自定义的DataGrid组件,用以双击修改数据DoubleClickDataGrid.as

   Flex所使用的与数据进行交互的组件

 package com.flex  
{  
    import flash.events.MouseEvent;  
    import mx.controls.DataGrid;  
    import mx.controls.dataGridClasses.DataGridColumn;  
    import mx.controls.listClasses.IDropInListItemRenderer;  
    import mx.controls.listClasses.IListItemRenderer;  
    import mx.core.EventPriority;  
    import mx.events.DataGridEvent;  
      
      
    public class DoubleClickDataGrid extends DataGrid  
    {  
        public function DoubleClickDataGrid()  
        {  
            //TODO: implement function  
            super();  
            doubleClickEnabled = true;  
        }  
        override protected function mouseDoubleClickHandler(event:MouseEvent):void 
        {  
            var dataGridEvent:DataGridEvent;  
            var r:IListItemRenderer;  
            var dgColumn:DataGridColumn;  
              
            r = mouseEventToItemRenderer(event);  
            if (r && r != itemEditorInstance)  
            {  
                var dilr:IDropInListItemRenderer = IDropInListItemRenderer(r);  
                if (columns[dilr.listData.columnIndex].editable)  
                {  
                    dgColumn = columns[dilr.listData.columnIndex];  
                    dataGridEvent = new DataGridEvent(DataGridEvent.ITEM_EDIT_BEGINNING, false, true);  
                    // ITEM_EDIT events are cancelable  
                      
                    dataGridEvent.columnIndex = dilr.listData.columnIndex;  
                    dataGridEvent.dataField = dgColumn.dataField;  
                    dataGridEvent.rowIndex = dilr.listData.rowIndex + verticalScrollPosition;  
                    dataGridEvent.itemRenderer = r;  
                    dispatchEvent(dataGridEvent);  
                }  
            }  
              
            super.mouseDoubleClickHandler(event);  
        }  
          
        override protected function mouseUpHandler(event:MouseEvent):void 
        {  
            var r:IListItemRenderer;  
            var dgColumn:DataGridColumn;  
              
            r = mouseEventToItemRenderer(event);  
            if (r)  
            {  
                var dilr:IDropInListItemRenderer = IDropInListItemRenderer(r);  
                if (columns[dilr.listData.columnIndex].editable)  
                {  
                    dgColumn = columns[dilr.listData.columnIndex];  
                    dgColumn.editable = false;  
                }  
            }  
              
            super.mouseUpHandler(event);  
              
            if (dgColumn)  
                dgColumn.editable = true;  
        }  
          
    }  

 

8,页面显示,Userflex.mxml

      <?xml version="1.0" encoding="utf-8"?>  
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"   
               xmlns:s="library://ns.adobe.com/flex/spark"   
               xmlns:mx="library://ns.adobe.com/flex/mx"   
               xmlns:locdg="com.flex.*" 
               creationComplete="initApp()" 
               minWidth="955" minHeight="600">  
    <fx:Declarations>  
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->  
        <s:RemoteObject id="userdata" destination="userDao" result="onResult(event)" fault="onFault(event)" />  
        <!--<s:method name="getUserList" result="onResult(event)" fault="onFault(event)" />-->  
        <s:RemoteObject id="adduserdata" destination="userDao" result="addResult(event)" fault="addFault(event)" />  
        <s:RemoteObject id="updatauserdata" destination="userDao" result="updataResult(event)" fault="updataFault(event)" />  
        <s:RemoteObject id="deleteuserdata" destination="userDao" result="deleteResult(event)" fault="deleteFault(event)" />  
    </fx:Declarations>  
    <fx:Script>  
        <!--[CDATA[  
            import com.flex.UserFlex;  
              
            import mx.collections.ArrayCollection;  
            import mx.controls.Alert;  
            import mx.managers.CursorManager;  
            import mx.rpc.events.FaultEvent;  
            import mx.rpc.events.ResultEvent;  
              
            public var userFlex:UserFlex = new UserFlex();  
            public var result:Object = new Object();  
            [Bindable]  
            public var users:ArrayCollection = new ArrayCollection();  
              
            public function initApp():void{  
//              userdata.getUserList();  
            }  
              
            public function click_handler(event:Event):void{  
                CursorManager.setBusyCursor();  
                info.text = "正在查询...";  
                userdata.getUserList();  
            }  
            public function adduser_handler(event:Event):void{  
                if(username.text != "" && password.text != ""){  
                    CursorManager.setBusyCursor();  
                    addinfo.text = "正在添加...";  
                    userFlex.username = username.text;  
                    userFlex.password = password.text;  
                    adduserdata.addUser(userFlex);  
                }else{  
                    addinfo.text = "用户名和密码不能为空";  
                }  
            }  
            public function updataUser(event:Event):void{  
                if(userlist.selectedItem.username != "" && userlist.selectedItem.password != ""){  
                    CursorManager.setBusyCursor();  
                    info.text = "正在更新...";  
                    userFlex.id = userlist.selectedItem.id;  
                    userFlex.username = userlist.selectedItem.username;  
                    userFlex.password = userlist.selectedItem.password;  
                    updatauserdata.updataUser(userFlex);  
                }  
//              Alert.show("确认修改?");  
            }  
            public function deleteUser(event:Event):void{  
                CursorManager.setBusyCursor();  
                info.text = "正在正在删除...";  
                userFlex.id = userlist.selectedItem.id;  
                deleteuserdata.deleteUser(userFlex);  
            }  
              
            public function onResult(event:ResultEvent):void{  
                users = event.result as ArrayCollection;  
                CursorManager.removeBusyCursor();  
                if(users.length==0){  
                    info.text="取数据成功,为空";  
                }else{  
                    info.text = "取数据成功";  
                }  
            }  
            public function onFault(event:FaultEvent):void{  
                CursorManager.removeBusyCursor();  
                info.text="取数据失败";  
            }  
            public function addResult(event:ResultEvent):void{  
                CursorManager.removeBusyCursor();  
                userdata.getUserList();  
                username.text = "";  
                password.text = "";  
                addinfo.text = "添加成功";  
                //              info.text = "取数据成功";  
            }  
            public function addFault(event:FaultEvent):void{  
                CursorManager.removeBusyCursor();  
                addinfo.text="添加失败";  
            }  
            public function updataResult(event:ResultEvent):void{  
                CursorManager.removeBusyCursor();  
                userdata.getUserList();  
                info.text = "修改数据成功";  
            }  
            public function updataFault(event:FaultEvent):void{  
                CursorManager.removeBusyCursor();  
                info.text="修改数据失败";  
            }  
            public function deleteResult(event:ResultEvent):void{  
                CursorManager.removeBusyCursor();  
                userdata.getUserList();  
                info.text = "刪除数据成功";  
            }  
            public function deleteFault(event:FaultEvent):void{  
                CursorManager.removeBusyCursor();  
                info.text="刪除数据失败";  
            }  
        ]]-->  
    </fx:Script>  
    <locdg:DoubleClickDataGrid x="61" y="189" id="userlist" dataProvider="{users}" editable="true">  
        <locdg:columns>  
            <mx:DataGridColumn headerText="ID号" dataField="id" editable="false"/>  
            <mx:DataGridColumn headerText="账号" dataField="username" editable="true"/>  
            <mx:DataGridColumn headerText="密码" dataField="password" editable="true"/>  
            <mx:DataGridColumn headerText="修改" width="50" editable="false" >  
                <mx:itemRenderer>  
                    <fx:Component>  
                        <mx:LinkButton toolTip="修改" click="outerDocument.updataUser(event)" icon="@Embed('/image/update.gif')">  
                        </mx:LinkButton>  
                    </fx:Component>  
                </mx:itemRenderer>  
            </mx:DataGridColumn>  
            <mx:DataGridColumn headerText="删除" width="50" editable="false" >  
                <mx:itemRenderer>  
                    <fx:Component>  
                        <mx:LinkButton toolTip="删除" click="outerDocument.deleteUser(event)" icon="@Embed('/image/delete.gif')">     
                        </mx:LinkButton>  
                    </fx:Component>  
                </mx:itemRenderer>  
            </mx:DataGridColumn>  
        </locdg:columns>  
    </locdg:DoubleClickDataGrid>  
    <s:Button x="491" y="189" label="取数据" click="click_handler(event)" />  
    <s:RichText x="606" y="189" id="info" text="点击按钮取数据"/>  
    <mx:Form x="163" y="72" borderStyle="solid" borderVisible="true">  
        <mx:FormItem label="用户名" borderStyle="solid" borderVisible="true">  
            <s:TextInput id="username" />  
        </mx:FormItem>  
        <mx:FormItem label="密码" borderStyle="solid" borderVisible="true">  
            <s:TextInput id="password"/>  
        </mx:FormItem>  
    </mx:Form>  
    <s:Button x="444" y="100" label="添加" click="adduser_handler(event)"/>  
    <s:RichText x="544" y="100" id="addinfo" text="请添加"/>  
</s:Application> 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值