posts - 15,comments - 65,trackbacks - 0
                   嘿,先向大家宣傳下我站啊,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>   
                  
          <![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,就這么簡單,呵呵,趕快運行,看看效果呢。
          posted on 2009-04-11 17:52 你假笨 閱讀(7779) 評論(14)  編輯  收藏

          FeedBack:
          # re: Flex與java交互之數據庫數據讀取
          2009-04-12 19:03 | 左洸
          你用的也是 jspkj.com 的主機啊,我去看了好多次了,價錢道挺公道,一直猶豫。另外,我現在還在猶豫用php 還是 java ,java感覺還是太重型了。

          對了,你準備不準備備案啊,這也是個讓人頭疼的問題啊  回復  更多評論
            
          # re: Flex與java交互之數據庫數據讀取[未登錄]
          2009-04-12 20:00 | 你假笨
          @左洸
          嗯,呵呵,那空間站還不錯哈,服務態度也好,可以嘗試下呢。我有時間了也學下php啊,flex和php結合得好像更好些
            回復  更多評論
            
          # re: Flex與java交互之數據庫數據讀取
          2009-04-27 15:28 | ithanshui
          博主你好:
          我是初學flex的,我將代碼整理后,運行的時候點擊按鈕DataGrid里面的數據為什么顯示不出來?  回復  更多評論
            
          # re: Flex與java交互之數據庫數據讀取
          2009-07-10 00:06 | hcg8827
          bloger我不知道你最后的顯示是怎么顯示出來的 但是我可以說這段代碼是有問題的
          在as的 ao和java jo對應中 在flex的command你是取一個arraycollection 作為dataprovider但是 作為一個通用容器 arraycollection返回的應該是一個object
          而不是as的user對象 這中間有一個轉換過程 而flex是不可能自動幫你轉化的 因為object在外部開起來是一樣的要自動轉化的話只有通過instance找到它的確切類型或者是要求在JAVA那邊中表述清楚發過來的list中 包含的是那個類的對象 但是這樣很不現實
          也就是說 從arraycollection里面取出來的肯定是object對象 而obejct對象肯定是無法取得name這些字段的 所以 我不知道你是怎么獲得最后的顯示的 但是很多人都顯示不出來 改一下才能正確顯示
            回復  更多評論
            
          # re: Flex與java交互之數據庫數據讀取
          2009-07-10 14:03 | nijiaben
          @hcg8827
          呵呵,你之所以沒有顯示出來最大的可能是你配置上出錯了,你點擊Project->Properties->Flex Server,如果你的ROOT RUL顯示類似為http://localhost:8080/FlexJava以及Context" target="_new" rel="nofollow">http://localhost:8080/FlexJava以及Context root為/WebRoot的話,那請你改成ROOT RUL顯示為http://localhost:8080,而Context root的值改為/FlexJava,這是很多初學者最不注意的地方,你可以改了再試試  回復  更多評論
            
          # re: Flex與java交互之數據庫數據讀取
          2009-12-09 10:23 | jj
          能不能介紹下項目環境,我知道你這東西是運行在java項目里面的還是單獨的flex項目,再說了,remoting-config.xml,這個是flex內置的配置,還是給什么組件用的,你讓我一個做java的看,我就覺得你這東西跑不起來,我連項目放什么地方我都不知道。發出來了就試試講清楚,讓一個一次都沒做過flex的人可以依次運行,這才是高度  回復  更多評論
            
          # re: Flex與java交互之數據庫數據讀取
          2010-05-12 17:30 | yuqi

          @nijiaben
          我按你的說的路徑進去了,但是他不讓我配置,全部都是灰的!

          請問是什么原因?
            回復  更多評論
            
          # re: Flex與java交互之數據庫數據讀取[未登錄]
          2010-08-19 10:23 | ddd
          sddd  回復  更多評論
            
          # re: Flex與java交互之數據庫數據讀取
          2011-08-10 23:16 | 不行
          不行。。。。。。  回復  更多評論
            
          # re: Flex與java交互之數據庫數據讀取[未登錄]
          2011-08-16 10:42 | wl

          按照上面 的方法做了之后 有一個錯誤 怎么改
          Unexpected text '  
              ' found in 'destination' from file: remoting-config.xml.  回復  更多評論
            
          # re: Flex與java交互之數據庫數據讀取
          2013-05-14 11:59 | liuxinye
          你好,Flex與java交互之數據庫數據寫入,搞不懂,不知道怎么回事  回復  更多評論
            
          # re: Flex與java交互之數據庫數據讀取[未登錄]
          2013-09-12 18:15 | Eric
          按照以上代碼,最終點擊獲取數據按鈕后,直接error。請問是什么原因  回復  更多評論
            
          # re: Flex與java交互之數據庫數據讀取
          2013-12-30 10:07 |
          我也是這樣子的問題,不知最后是怎樣解決的?@wl
            回復  更多評論
            
          # re: Flex與java交互之數據庫數據讀取
          2013-12-30 10:11 |
          剛問完,刪掉remoting-config文件的adapter-definition元素的default="true" />里面的空格就好了@斦  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 应用必备| 信宜市| 惠州市| 紫阳县| 天峻县| 且末县| 濮阳县| 仁怀市| 霞浦县| 简阳市| 德格县| 白玉县| 乌鲁木齐市| 广德县| 徐闻县| 顺昌县| 涟水县| 乌兰浩特市| 普宁市| 如东县| 曲麻莱县| 慈利县| 池州市| 喀喇沁旗| 曲水县| 阜南县| 定结县| 阿鲁科尔沁旗| 望都县| 新津县| 邮箱| 文安县| 泰和县| 梧州市| 米脂县| 沽源县| 邢台县| 东阳市| 溧水县| 商洛市| 德昌县|