`
kfgon38u
  • 浏览: 14490 次
社区版块
存档分类
最新评论

flex与mysql交互

 
阅读更多

  这个小例子通过remoteobject的通讯方法。实现flex与mySQL数据库的交互。
  BlazeDS 是一个基于服务器的 Java 远程控制 (remoting) 和 Web 消息传递 (messaging) 技术,它能够使得后端的 Java 应用程序和运行在浏览器上的 Adobe Flex 应用程序相互通信。使用Blazeds可以很方便的连接java后台,同时他也提供HttpService、webservice方式,不过在Blazeds中可以通过配置文件中对其进行设置的,这样提高了应用的灵活性。其中最重要的还是RemotingObject技术,他可以直接远程远程调用java后台提供的公共接口,使其效率大大提升,一般是采用HTTPService方式的10倍左右。    
  
  1  使用mySQL中的test数据库,建表名为admin.表中字段为:  id username userpwd 
  (最终目的:将数据库表中的记录最终显示在flex端的DateGrid组件中显示出来)
  2  建立myEclipse的工程。新建->web project 输入工程名后。需要将事先下载的Blazeds包粘贴至工程目录下。并且将mysql的驱动放到工程目录lib的文件夹下
  (我使用版本blazeds_turnkey_3-0-0-544.zip。将解压后的文件夹中的blazeds.war改成rar的拓展名,并解压,将得到的META-INF和WEB-INF两个文件夹拷入刚建成的工程下webroot下)
  3  编写所需的java方法 Java代码 type="application/x-shockwave-flash" width="14" height="15" src="http://www.javaeye.com/javascripts/syntaxhigh lighter/clipboard_new.swf" pluginspage="http://www.macromedia.com/go/getflash player" allowscriptaccess="always" quality="high" flashvars="clipboard=ConnextionHelper.java%0Aimpor t%20java.sql.Connection%3B%0Aimport%20java.sql.Driv erManager%3B%0Aimport%20java.sql.SQLException%3B%0A %0Apublic%20class%20ConnectionHelper%0A%7B%0A%20%20 %20%20private%20String%20url%3B%0A%0A%20%20%20%20pr ivate%20static%20ConnectionHelper%20instance%3B%0A% 0A%20%20%20%20private%20ConnectionHelper()%0A%20%20 %20%20%7B%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20 %20%20%20%20%20%20%20%20%20%20%20Class.forName(%22c om.mysql.jdbc.Driver%22)%3B%0A%20%20%20%20%20%20%20 %20%20%20%20%20url%20%3D%20%22jdbc%3AMySQL%3A%2F%2F localhost%2Ftest%22%3B%0A%20%20%20%20%20%20%20%20%2 0%20%20%20%0A%20%20%20%20%20%20%20%20%7D%20catch%20 (Exception%20e)%20%7B%0A%20%20%20%20%20%20%20%20%20 %20%20%20e.printStackTrace()%3B%0A%20%20%20%20%20%2 0%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20publi c%20static%20Connection%20getConnection()%20throws% 20SQLException%20%7B%0A%20%20%20%20%20%20%20%20if%2 0(instance%20%3D%3D%20null)%20%7B%0A%20%20%20%20%20 %20%20%20%20%20%20%20instance%20%3D%20new%20Connect ionHelper()%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20% 20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20% 20%20%20%20%20%20return%20DriverManager.getConnecti on(instance.url%2C%22root%22%2C%22root%22)%3B%0A%20 %20%20%20%20%20%20%20%7D%20catch%20(SQLException%20 e)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20thro w%20e%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20% 20%7D%0A%20%20%20%20%0A%20%20%20%20public%20static% 20void%20close(Connection%20connection)%0A%20%20%20 %20%7B%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20 %20%20%20%20%20%20%20%20%20%20if%20(connection%20!% 3D%20null)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%2 0%20%20%20%20%20connection.close()%3B%0A%20%20%20%2 0%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2 0%20%7D%20catch%20(SQLException%20e)%20%7B%0A%20%20 %20%20%20%20%20%20%20%20%20%20e.printStackTrace()%3 B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0 A%7D%0A">
  ConnextionHelper.java  
  import java.sql.Connection;  
  import java.sql.DriverManager;  
  import java.sql.SQLException;  
  public class ConnectionHelper  
  {  
  private String url;  
  private static ConnectionHelper instance;  
  private ConnectionHelper()  
  {  
  try {  
  Class.forName("com.mysql.jdbc.Driver");  
  url = "jdbc:MySQL://localhost/test";  
  } catch (Exception e) {  
  e.printStackTrace();  
  }  
  }     
  public static Connection getConnection() throws SQLException {  
  if (instance == null) {  
  instance = new ConnectionHelper();  
  }  
  try {  
  return DriverManager.getConnection(instance.url,"root","root");  
  } catch (SQLException e) {  
  throw e;  
  }  
  }         
  public static void close(Connection connection)  
  {  
  try {  
  if (connection != null) {  
  connection.close();  
  }  
  } catch (SQLException e) {  
  e.printStackTrace();  
  }  
  }   }  
  Java代码 type="application/x-shockwave-flash" width="14" height="15" src="http://www.javaeye.com/javascripts/syntaxhigh lighter/clipboard_new.swf" pluginspage="http://www.macromedia.com/go/getflash player" allowscriptaccess="always" quality="high" flashvars="clipboard=DAOException.java%0Apublic%20 class%20DAOException%20extends%20RuntimeException%0 A%7B%0A%20%20%20%20static%20final%20long%20serialVe rsionUID%20%3D%20-1881205326938716446L%3B%0A%0A%20% 20%20%20public%20DAOException(String%20message)%0A% 20%20%20%20%7B%0A%20%20%20%20%20%20%20%20super(mess age)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20public%2 0DAOException(Throwable%20cause)%0A%20%20%20%20%7B% 0A%20%20%20%20%20%20%20%20super(cause)%3B%0A%20%20% 20%20%7D%0A%0A%20%20%20%20public%20DAOException(Str ing%20message%2C%20Throwable%20cause)%0A%20%20%20%2 0%7B%0A%20%20%20%20%20%20%20%20super(message%2C%20c ause)%3B%0A%20%20%20%20%7D%0A%0A%7D%0A">
  DAOException.java  
  public class DAOException extends RuntimeException  
  {  
  static final long serialVersionUID = -1881205326938716446L;  
  public DAOException(String message)  
  {  
  super(message);  
  }     
  public DAOException(Throwable cause)  
  {  
  super(cause);  
  }     
  public DAOException(String message, Throwable cause)  
  {  
  super(message, cause);  
  }      }  
  以上是数据库连接所需方法。然后根据数据库中表的结构写下所需的方法类。
  Java代码 type="application/x-shockwave-flash" width="14" height="15" src="http://www.javaeye.com/javascripts/syntaxhigh lighter/clipboard_new.swf" pluginspage="http://www.macromedia.com/go/getflash player" allowscriptaccess="always" quality="high" flashvars="clipboard=Admin.java%0Aimport%20java.io .Serializable%3B%0A%0Apublic%20class%20Admin%20impl ements%20Serializable%20%7B%0A%0A%20%20%20%20static %20final%20long%20serialVersionUID%20%3D%2010384451 4947365244L%3B%0A%20%20%20%20%0A%20%20%20%20private %20int%20id%3B%0A%20%20%20%20private%20String%20use rname%3B%0A%20%20%20%20private%20String%20userpwd%3 B%0A%20%20%20%0A%20%20%20%20%0A%20%20%20%20public%2 0Admin()%20%7B%0A%20%20%20%20%20%20%20%20%0A%20%20% 20%20%7D%0A%20%20%20%20%0A%20%20%20%20public%20Admi n(int%20id%2CString%20username%2CString%20userpwd)% 20%7B%0A%20%20%20%20%20%20%20%20this.id%20%3D%20id% 3B%0A%20%20%20%20%20%20%20%20this.username%3Duserna me%3B%0A%20%20%20%20%20%20%20%20this.userpwd%3Duser pwd%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20public%20 int%20getId()%20%7B%0A%20%20%20%20%20%20%20%20retur n%20id%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20public %20void%20setId(int%20id)%20%7B%0A%20%20%20%20%20%2 0%20%20this.id%20%3D%20id%3B%0A%20%20%20%20%7D%0A%0 A%20%20%20%20public%20String%20getUsername()%20%7B% 0A%20%20%20%20%20%20%20%20return%20username%3B%0A%2 0%20%20%20%7D%0A%0A%20%20%20%20public%20void%20setU sername(String%20username)%20%7B%0A%20%20%20%20%20% 20%20%20this.username%20%3D%20username%3B%0A%20%20% 20%20%7D%0A%0A%20%20%20%20public%20String%20getUser pwd()%20%7B%0A%20%20%20%20%20%20%20%20return%20user pwd%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20public%20 void%20setUserpwd(String%20userpwd)%20%7B%0A%20%20% 20%20%20%20%20%20this.userpwd%20%3D%20userpwd%3B%0A %20%20%20%20%7D%0A%0A%7D%0A">
  Admin.java  
  import java.io.Serializable;  
  public class Admin implements Serializable {  
  static final long serialVersionUID = 103844514947365244L;  
  private int id;  
  private String username;  
  private String userpwd;  
  public Admin() {  
  }         
  public Admin(int id,String username,String userpwd) {  
  this.id = id;  
  this.username=username;  
  this.userpwd=userpwd;  
  }     
  public int getId() {  
  return id;       }     
  public void setId(int id) {  
  this.id = id;  
  }     
  public String getUsername() {  
  return username;  
  }     
  public void setUsername(String username) {  
  this.username = username;  
  }     
  public String getUserpwd() {  
  return userpwd;  
  }     
  public void setUserpwd(String userpwd) {  
  this.userpwd = userpwd;  
  }      }  
  Java代码 type="application/x-shockwave-flash" width="14" height="15" src="http://www.javaeye.com/javascripts/syntaxhigh lighter/clipboard_new.swf" pluginspage="http://www.macromedia.com/go/getflash player" allowscriptaccess="always" quality="high" flashvars="clipboard=AdminService.java%0Aimport%20 java.util.ArrayList%3B%0Aimport%20java.util.List%3B %0Aimport%20java.sql.*%3B%0A%0Aimport%20flex.jie.Co nnectionHelper%3B%0Aimport%20flex.jie.DAOException% 3B%0A%0Apublic%20class%20AdminService%20%7B%0A%0A%2 0%20%20%20public%20List%20getAdmins()%20throws%20DA OException%20%7B%0A%0A%20%20%20%20%20%20%20%20List% 20list%20%3D%20new%20ArrayList()%3B%0A%20%20%20%20% 20%20%20%20Connection%20c%20%3D%20null%3B%0A%0A%20% 20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20% 20%20%20%20%20%20c%20%3D%20ConnectionHelper.getConn ection()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20S tatement%20s%20%3D%20c.createStatement()%3B%0A%20%2 0%20%20%20%20%20%20%20%20%20%20ResultSet%20rs%20%3D %20s.executeQuery(%22SELECT%20*%20FROM%20admin%20OR DER%20BY%20id%22)%3B%0A%20%20%20%20%20%20%20%20%20% 20%20%20while%20(rs.next())%20%7B%0A%20%20%20%20%20 %20%20%20%20%20%20%20%20%20%20%20list.add(new%20Adm in(rs.getInt(%22id%22)%2C%0A%20%20%20%20%20%20%20%2 0%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rs .getString(%22username%22)%2C%0A%20%20%20%20%20%20% 20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20% 20rs.getString(%22userpwd%22)))%3B%0A%20%20%20%20%2 0%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%2 0%7D%20catch%20(SQLException%20e)%20%7B%0A%20%20%20 %20%20%20%20%20%20%20%20%20e.printStackTrace()%3B%0 A%20%20%20%20%20%20%20%20%20%20%20%20throw%20new%20 DAOException(e)%3B%0A%20%20%20%20%20%20%20%20%7D%20 finally%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%2 0ConnectionHelper.close(c)%3B%0A%20%20%20%20%20%20% 20%20%7D%0A%20%20%20%20%20%20%20%20return%20list%3B %0A%0A%20%20%20%20%7D%0A%7D%0A">
  AdminService.java  
  import java.util.ArrayList;  
  import java.util.List;  
  import java.sql.*;  
  import flex.jie.ConnectionHelper;  
  import flex.jie.DAOException;  
  public class AdminService {  
  public List getAdmins() throws DAOException {  
  List list = new ArrayList();  
  Connection c = null;     
  try {  
  c = ConnectionHelper.getConnection();  
  Statement s = c.createStatement();  
  ResultSet rs = s.executeQuery("SELECT * FROM admin ORDER BY id");  
  while (rs.next()) {  
  list.add(new Admin(rs.getInt("id"),  
  rs.getString("username"),  
  rs.getString("userpwd")));  
  }  
  } catch (SQLException e) {  
  e.printStackTrace();  
  throw new DAOException(e);  
  } finally {  
  ConnectionHelper.close(c);  
  }  
  return list;          }   }  
  
  在remoting-config.xml文件中 添加(source处根据实际的建包名填写) Xml代码 type="application/x-shockwave-flash" width="14" height="15" src="http://www.javaeye.com/javascripts/syntaxhigh lighter/clipboard_new.swf" pluginspage="http://www.macromedia.com/go/getflash player" allowscriptaccess="always" quality="high" flashvars="clipboard=%3Cdestination%20id%3D%22admi n%22%3E%0A%20%20%20%20%20%20%20%20%3Cproperties%3E% 0A%20%20%20%20%20%20%20%20%20%20%20%20%3Csource%3Ef lex.jie.user.AdminService%3C%2Fsource%3E%0A%20%20%2 0%20%20%20%20%20%3C%2Fproperties%3E%0A%3C%2Fdestina tion%3E%0A">
  至此。myEclipse工程中所需代码以及配置已经完成。将工程部署并发布在Tomacat下面。
  接下来,flex端的步骤。
  首先 新建Flex Project ,输入工程名。在server technology处选择J2EE,点击next
  
  填写刚刚发布在tomcat下的目录名。点击完成。
  在默认的mxml中的代码如下: Mxml代码 type="application/x-shockwave-flash" width="14" height="15" src="http://www.javaeye.com/javascripts/syntaxhigh lighter/clipboard_new.swf" pluginspage="http://www.macromedia.com/go/getflash player" allowscriptaccess="always" quality="high" flashvars="clipboard=%3C%3Fxml%20version%3D%221.0% 22%20encoding%3D%22utf-8%22%3F%3E%0A%3Cmx%3AApplica tion%20xmlns%3Amx%3D%22http%3A%2F%2Fwww.adobe.com%2 F2006%2Fmxml%22%20backgroundColor%3D%22%23FFFFFF%22 %3E%0A%20%20%20%20%0A%20%20%20%20%3Cmx%3ARemoteObje ct%20id%3D%22srv%22%20destination%3D%22admin%22%2F% 3E%0A%20%20%20%20%0A%20%20%20%20%3Cmx%3ADataGrid%20 dataProvider%3D%22%7Bsrv.getAdmins.lastResult%7D%22 %20width%3D%22100%25%22%20height%3D%22100%25%22%2F% 3E%20%0A%0A%20%20%20%20%3Cmx%3AButton%20label%3D%22 Get%20Data%22%20click%3D%22srv.getAdmins()%22%2F%3E %20%20%20%20%0A%20%20%20%20%20%20%20%20%0A%3C%2Fmx% 3AApplication%3E%26nbsp%3B">
  在tomcat启动的前提下,点击运行即可。
  
  或者想显示指定的列。只需要稍作修改即可  Mxml代码 type="application/x-shockwave-flash" width="14" height="15" src="http://www.javaeye.com/javascripts/syntaxhigh lighter/clipboard_new.swf" pluginspage="http://www.macromedia.com/go/getflash player" allowscriptaccess="always" quality="high" flashvars="clipboard=%3C%3Fxml%20version%3D%221.0% 22%20encoding%3D%22utf-8%22%3F%3E%0A%3Cmx%3AApplica tion%20xmlns%3Amx%3D%22http%3A%2F%2Fwww.adobe.com%2 F2006%2Fmxml%22%20backgroundColor%3D%22%23FFFFFF%22 %20creationComplete%3D%22srv.getAdmins()%22%3E%0A%2 0%20%3Cmx%3AScript%3E%0A%20%20%20%20%20%20%3C!%5BCD ATA%5B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20imp ort%20mx.rpc.events.ResultEvent%3B%20%20%20%20%0A%2 0%20%20%20%20%20import%20mx.collections.ArrayCollec tion%3B%0A%20%20%20%20%20%20%5BBindable%5Dpublic%20 var%20ad%3AArrayCollection%3B%0A%20%20%20%20%20%20% 20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20private %20function%20adminHandler(event%3AResultEvent)%3Av oid%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20 %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ad%3D% 20event.result%20as%20ArrayCollection%0A%20%20%20%2 0%20%20%20%20%20%20%20%20%7D%20%20%20%20%0A%20%20%2 0%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%5 D%5D%3E%0A%20%20%3C%2Fmx%3AScript%3E%20%20%0A%20%20 %20%3Cmx%3ARemoteObject%20id%3D%22srv%22%20destinat ion%3D%22admin%22%3E%0A%20%20%20%20%20%20%20%20%3Cm x%3Amethod%20name%3D%22getAdmins%22%20result%3D%22a dminHandler(event)%22%2F%3E%0A%20%20%20%20%3C%2Fmx% 3ARemoteObject%3E%0A%20%20%20%20%3Cmx%3ADataGrid%20 dataProvider%3D%22%7Bad%7D%22%3E%0A%20%20%20%20%20% 20%20%20%3Cmx%3Acolumns%3E%0A%20%20%20%20%20%20%20% 20%20%20%20%20%3Cmx%3ADataGridColumn%20headerText%3 D%22%E7%94%A8%E6%88%B7%E5%90%8D%22%20dataField%3D%2 2username%22%2F%3E%0A%20%20%20%20%20%20%20%20%20%20 %20%20%3Cmx%3ADataGridColumn%20headerText%3D%22%E5% AF%86%E7%A0%81%22%20dataField%3D%22userpwd%22%2F%3E %0A%20%20%20%20%20%20%20%20%3C%2Fmx%3Acolumns%3E%0A %20%20%20%20%3C%2Fmx%3ADataGrid%3E%0A%20%20%20%20%2 0%20%20%20%0A%3C%2Fmx%3AApplication%3E%0A">
    
    
    
    
      
    
    
    
    
    
    
    
    
    
    
  显示为形式可为:
  
  说明:此时的destination对应remote-config.xml中的id号 。建立连接。从而flex端所用到的java方法可以找到。返回数据库中所建表的信息
分享到:
评论

相关推荐

    Flex和java交互的示例代码

    Flex和java交互的示例代码,给出的Flex部分:前端界面和vo,后端Java部分,以及配置部分。注意:我直接用的JDBC连接MySql,且只做了数据显示,没有增修改删除。

    Flex与Java交互调用mysql

    想用Flex前台页面调用mysql而苦于Flex没有该接口,利用BlazeDS技术,使得Java调用mysql,然后Flex就可以远程调用Java,从而实现前台Flex页面对mysql数据库的操作。

    flex+java+mysql登录

    flex 数据库操作 romotingobject 连接java后台文件 与数据库进行交互

    Flex+BlazeDB+mysql实现数据交互

    Flex+BlazeDB+mysql实现数据交互.docx

    flex与java交互 blaze+cairngorm框架实现用户登录

    flex cairngorm框架入门的一个例子,后台处理采用java完成。 采用mysql数据库,数据库名test,需要自己创建数据表login

    Flex+blazeds实现与mySQL数据库的连接

    flex通过BlazeDS远程对象访问服务,实现后台数据交互

    Flex 学习资料整合

    Flex cookbook、flex与java交互、As3 中文API、AS3 编程清晰版、使用AS组件、BlazeDS集成Flex开发J2EE实例、Flex+Java配置、Flex+Java+Json+BlazeDS+MySQL资料、整合Flex和Java--配置篇…… (全部是中文材料)

    flex + java开发的信息系统

    用java + flex4 + mysql开发的一个简单的信息系统,但对于flex的初学者了解java和flex4的交互有很大的帮助

    Flex 企业门户网整站系统

    Flex与J2ee集成的完全整站代码 blazeds 为核心通讯,RemoteObject 交互, mysql 为数据库 网站开头动画,首页动画,页面切换动画, Grid ,案例有书本翻页效果,自定义组件。 完全开源

    基于Flex4.X+BlazeDS+Spring3+JPA+Hibernate+MySQL实战开发在线书店

    )软件可以通过智能编码、交互式遍历调试以及可视设计用户界面布局等功能加快开发。 1)这是一个RIA的时代 2)Flash Player 99%的装机率 3)从Adobe Flex到Apache Flex 4)页游的发展 课程内容简介 本...

    使用Flex 4、Django、Python和PyAMF开发项目示例

    项目使用pyamf框架实现flex 与python的数据交互,实现简单添加数据到mysql数据库,以及从mysql数据库中查询数据返回到flex页面。

    网页游戏开发入门教程三(简单程序应用)

    一、选择开发语言 后台:java .net php 前台:flex javascript ajax 数据库:mysql mssql 用哪种组合,真的不重要。重要的是时间和成本。复杂的地方在数据的交互和完善,而不在技术或效果的实现。往往遇到一些问题。...

Global site tag (gtag.js) - Google Analytics