posts - 15,comments - 65,trackbacks - 0
                   嘿,先向大家宣傳下我站啊,http://www.lovestblog.cn/,這是我的個(gè)人博客,希望大家常來我博客坐坐呢,相信大家也會(huì)有所收益的,不過我也不會(huì)放棄javaeye的,我也會(huì)一直在這里寫東西的。 (轉(zhuǎn)載的請不要?jiǎng)h除該段,謝謝合作)
                   前幾天有網(wǎng)友要我寫一篇關(guān)于flex與數(shù)據(jù)庫交互的例子,一直由于時(shí)間緊沒能寫,今天晚上特地花點(diǎn)時(shí)間寫了個(gè)例子,希望能給大家一點(diǎn)幫助,其實(shí)flex與數(shù)據(jù)庫交互很簡單的,我主要是通過java與數(shù)據(jù)庫交互讀取數(shù)據(jù),然后flex和java進(jìn)行交互,把java讀取的數(shù)據(jù)在flex前端顯示出來,好了,說了一堆廢話,下面代碼說明問題。
                  對于建立一個(gè)flex web應(yīng)用的步驟我就不多說了哈。
                  首先要求大家到數(shù)據(jù)庫建立一個(gè)數(shù)據(jù)庫,在我這例子中數(shù)據(jù)庫名為userDb,建立一個(gè)表userInfo,里面設(shè)置兩個(gè)字段一個(gè)為id,一個(gè)為name。
                  第二,創(chuàng)建以下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端的代碼。
              第三,創(chuàng)建以下代碼在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代碼,也就是我們真正展示我們數(shù)據(jù)的界面
          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,就這么簡單,呵呵,趕快運(yùn)行,看看效果呢。
          posted on 2009-04-11 17:52 你假笨 閱讀(7785) 評論(14)  編輯  收藏

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

          對了,你準(zhǔn)備不準(zhǔn)備備案啊,這也是個(gè)讓人頭疼的問題啊  回復(fù)  更多評論
            
          # re: Flex與java交互之?dāng)?shù)據(jù)庫數(shù)據(jù)讀取[未登錄]
          2009-04-12 20:00 | 你假笨
          @左洸
          嗯,呵呵,那空間站還不錯(cuò)哈,服務(wù)態(tài)度也好,可以嘗試下呢。我有時(shí)間了也學(xué)下php啊,flex和php結(jié)合得好像更好些
            回復(fù)  更多評論
            
          # re: Flex與java交互之?dāng)?shù)據(jù)庫數(shù)據(jù)讀取
          2009-04-27 15:28 | ithanshui
          博主你好:
          我是初學(xué)flex的,我將代碼整理后,運(yùn)行的時(shí)候點(diǎn)擊按鈕DataGrid里面的數(shù)據(jù)為什么顯示不出來?  回復(fù)  更多評論
            
          # re: Flex與java交互之?dāng)?shù)據(jù)庫數(shù)據(jù)讀取
          2009-07-10 00:06 | hcg8827
          bloger我不知道你最后的顯示是怎么顯示出來的 但是我可以說這段代碼是有問題的
          在as的 ao和java jo對應(yīng)中 在flex的command你是取一個(gè)arraycollection 作為dataprovider但是 作為一個(gè)通用容器 arraycollection返回的應(yīng)該是一個(gè)object
          而不是as的user對象 這中間有一個(gè)轉(zhuǎn)換過程 而flex是不可能自動(dòng)幫你轉(zhuǎn)化的 因?yàn)閛bject在外部開起來是一樣的要自動(dòng)轉(zhuǎn)化的話只有通過instance找到它的確切類型或者是要求在JAVA那邊中表述清楚發(fā)過來的list中 包含的是那個(gè)類的對象 但是這樣很不現(xiàn)實(shí)
          也就是說 從arraycollection里面取出來的肯定是object對象 而obejct對象肯定是無法取得name這些字段的 所以 我不知道你是怎么獲得最后的顯示的 但是很多人都顯示不出來 改一下才能正確顯示
            回復(fù)  更多評論
            
          # re: Flex與java交互之?dāng)?shù)據(jù)庫數(shù)據(jù)讀取
          2009-07-10 14:03 | nijiaben
          @hcg8827
          呵呵,你之所以沒有顯示出來最大的可能是你配置上出錯(cuò)了,你點(diǎn)擊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,這是很多初學(xué)者最不注意的地方,你可以改了再試試  回復(fù)  更多評論
            
          # re: Flex與java交互之?dāng)?shù)據(jù)庫數(shù)據(jù)讀取
          2009-12-09 10:23 | jj
          能不能介紹下項(xiàng)目環(huán)境,我知道你這東西是運(yùn)行在java項(xiàng)目里面的還是單獨(dú)的flex項(xiàng)目,再說了,remoting-config.xml,這個(gè)是flex內(nèi)置的配置,還是給什么組件用的,你讓我一個(gè)做java的看,我就覺得你這東西跑不起來,我連項(xiàng)目放什么地方我都不知道。發(fā)出來了就試試講清楚,讓一個(gè)一次都沒做過flex的人可以依次運(yùn)行,這才是高度  回復(fù)  更多評論
            
          # re: Flex與java交互之?dāng)?shù)據(jù)庫數(shù)據(jù)讀取
          2010-05-12 17:30 | yuqi

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

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

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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 辽阳县| 当阳市| 石楼县| 石阡县| 泸溪县| 弋阳县| 林周县| 藁城市| 奉节县| 西贡区| 阳原县| 龙江县| 根河市| 龙井市| 龙川县| 海口市| 淅川县| 巴彦淖尔市| 永清县| 于田县| 白河县| 西昌市| 威海市| 新乡市| 博野县| 屏山县| 普陀区| 会理县| 鄂伦春自治旗| 木兰县| 射洪县| 安平县| 招远市| 宾阳县| 乐东| 汶川县| 英超| 海门市| 勃利县| 铁力市| 绩溪县|