- 浏览: 14490 次
最新评论
这个小例子通过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方法可以找到。返回数据库中所建表的信息
发表评论
-
转贴 有关js 函数验证和字符串查找替换的方法
2012-07-06 09:52 664/* ************************** ... -
正则表达式JS变量
2012-07-06 09:45 609str="苹果有大苹果小苹果之分"; ... -
java正则表达式学习
2012-07-06 09:37 657正则表达式的基础: 表达式 说明 \t 制表符. ... -
HL7 Message examples
2012-07-06 09:30 1093i am now in university(HIT@We ... -
mantis附件图片预览
2012-07-05 20:45 1193mantis在bug详情查看页面里,可以查看bug关联的附 ... -
UML建模图组件库,软件设计,UML绘制 ,打印,自动代码产生,软件,VC++,VB,控件源程序
2012-07-03 13:43 885UML建模图组件库,软件设计,UML绘制 ,打印,自动 ... -
在Flex Mobile中构建“本地”菜单
2012-07-02 12:15 735Adobe Flash Builder 4 简体中文正式版 ... -
探究 Flex 组件的生命周期
2012-07-02 12:15 610简介: 最为新一 ... -
在Eclipse下使用Ant编译Flex程序
2012-07-02 12:15 581我的机器内存1G,如果使用Eclipse Flex插件编译 ... -
实现FLEX 通过AMF跟PHP通信
2012-07-02 12:14 550AMF flex一种远调用 ... -
Flex引擎
2012-07-01 09:48 803游戏引擎 1、FFilmation 是一个2.5D游 ... -
Ant Flex project 应用
2012-07-01 09:48 701写一个Ant脚本,xml大 ... -
Flex 拖拽范例
2012-07-01 09:48 708Flex由于在其Framwork里加入了DragDrop管 ... -
myeclipse6.5+flex 3 + tomcat6.0 + ds-console.war环境搭建
2012-07-01 09:48 720安装环境:myeclipse6 ... -
探究 Flex 组件的生命周期
2012-07-01 09:48 497简介: 最为新一 ... -
[转载]【笔记本电脑报价】笔记本电脑
2012-06-30 16:11 719[转载]【笔记本电脑报 ... -
[转载]Android原生(Native)C开发之四:SDL移植笔记
2012-06-30 16:11 705[转载]Android原生(Native)C开发之四:SDL移 ... -
[转载]人力资源管理师(二级)复习笔记-第三章 培训与开发
2012-06-30 16:11 721[转载]人力资源管理师( ... -
[转载]《0岁潜能开发 开发无限能力的ESP教育法》笔记
2012-06-30 16:11 672[转载]《0岁潜能开发 开发无限能力的ESP教育法》笔记 ...
相关推荐
Flex和java交互的示例代码,给出的Flex部分:前端界面和vo,后端Java部分,以及配置部分。注意:我直接用的JDBC连接MySql,且只做了数据显示,没有增修改删除。
想用Flex前台页面调用mysql而苦于Flex没有该接口,利用BlazeDS技术,使得Java调用mysql,然后Flex就可以远程调用Java,从而实现前台Flex页面对mysql数据库的操作。
flex 数据库操作 romotingobject 连接java后台文件 与数据库进行交互
Flex+BlazeDB+mysql实现数据交互.docx
flex cairngorm框架入门的一个例子,后台处理采用java完成。 采用mysql数据库,数据库名test,需要自己创建数据表login
flex通过BlazeDS远程对象访问服务,实现后台数据交互
Flex cookbook、flex与java交互、As3 中文API、AS3 编程清晰版、使用AS组件、BlazeDS集成Flex开发J2EE实例、Flex+Java配置、Flex+Java+Json+BlazeDS+MySQL资料、整合Flex和Java--配置篇…… (全部是中文材料)
用java + flex4 + mysql开发的一个简单的信息系统,但对于flex的初学者了解java和flex4的交互有很大的帮助
Flex与J2ee集成的完全整站代码 blazeds 为核心通讯,RemoteObject 交互, mysql 为数据库 网站开头动画,首页动画,页面切换动画, Grid ,案例有书本翻页效果,自定义组件。 完全开源
)软件可以通过智能编码、交互式遍历调试以及可视设计用户界面布局等功能加快开发。 1)这是一个RIA的时代 2)Flash Player 99%的装机率 3)从Adobe Flex到Apache Flex 4)页游的发展 课程内容简介 本...
项目使用pyamf框架实现flex 与python的数据交互,实现简单添加数据到mysql数据库,以及从mysql数据库中查询数据返回到flex页面。
一、选择开发语言 后台:java .net php 前台:flex javascript ajax 数据库:mysql mssql 用哪种组合,真的不重要。重要的是时间和成本。复杂的地方在数据的交互和完善,而不在技术或效果的实现。往往遇到一些问题。...