`
wushanlang
  • 浏览: 44000 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

flex LCDS 整合 java 增删改查

阅读更多

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> 

2
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics