flex 远程调用mysql_用J2EE+Flex+MySQL编写简单而强大的RIA

本文章主要讲一下如何用J2EE+Flex+MySQL编写简单而强大的RIA,对于JAVA程序员来说,这是一个很实用的技术,也是很重要的内容。希望对于这方面有兴趣的朋友有所帮助吧。

Adobe Flex 是一个客户端技术,它为开发人员提供丰富的 API 集合来创建 GUI、绘制图形、播放和流放媒体、连接到 Web 服务。在转子泵服务器端,Java 技术提供的功能包括关系型数据库管理系统(RDBM)的连接、服务请求的多线程处理以及随需求增加而进行的最佳伸缩。将这两种技术结合使用可提供一个满足 RIA 转子泵应用程序需求的强大的技术堆栈。

本文展示如何编写一个简单而强大的 RIA,能使用客户端的 Flex、服务器端 Java 技术以及后端数据库的 MySQL。

样例应用程序

样例应用程序(来自下面的 下载 部分)提供一个丰富的 UI,支持通过 Adobe Flash? (SWF) 应用程序创建、读取、更新和删除(CRUD) 联系信息。这个三层的 Web 架构如 图 1 所示,其中客户端由嵌入在一个 Web 页面中的 SWF 文件表示,服务器应用程序在一个 Java servlet 容器(本例中为 Apache Tomcat)内运行,且数据库是 MySQL。这三层共同创建一个功能分布式应用程序。

index355231.shtml

▲图1 Contacts 应用程序

对于 Flash 应用程序与 Java servlet 容器之间的通信,Adobe BlazeDS 框架提供对象远程调用 — 即一种允许 Adobe ActionScript? 对象与 Java 对象相互调用的 PRC 形式。Java 服务器应用程序与关系数据库之间的通信由 Hibernate Object Relational Mapping (ORM) 框架处理。Hibernate 允许将 Java 对象转换为 SQL代码,反之亦然。

应用程序:服务器层

第一步是要创建一个 Java 类,它包含存储联系信息所需的信息。样例应用程序包含一个带基本信息的简单模型。Contact 对象所需的属性和数据类型是:

#div_code img{border:0px;}

-StringemailAddress-StringfirstName-longid-StringlastName-StringphoneNumber-longserialVersionUID+Contact()+Contact(Stringfirst,Stringlast,Stringemail,Stringnumber)+StringgetEmailAddress()+StringgetFirstName()+longgetId()+StringgetLastName()+StringgetPhoneNumber()+void setEmailAddress(Stringaddress)+void setFirstName(Stringfirst)+void setId(longnewId)+void setLastName(Stringlast)+void setPhoneNumber(Stringnumber)+StringtoString()

注释业务对象

Java Contact 类被看作是一个充当业务对象的 POJO(简单 Java 对象),这意味着它代表业务领域特征和行为。Contact 对象内的数据需要存留到数据库中。解决方案就是使用一个 ORM 框架,比如 Hibernate,它在对象与数据库表记录之间的来回映射中执行大量工作。如果使用了 Java Persistence API (JPA) 注释,完成 ORM 仅需要少量代码。 清单 1 显示了带注释的 Java 类 Contact。

清单 1. Java Contact 类

#div_code img{border:0px;}

package bcit.contacts;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.NamedQueries;

import javax.persistence.NamedQuery;

import javax.persistence.Table;

@Entity

@Table(name="contact")

@NamedQueries( {

@NamedQuery(name="contact.findAll", query="from Contact"),

@NamedQuery(name="contact.getById", query="select c from Contact c where c.id = :id")

} )publicclass Contact {privatestatic finallongserialVersionUID=123456789L;publicContact() {

firstName="N/A";

lastName="N/A";

emailAddress="N/A";

phoneNumber="N/A";

}publicContact(Stringfirst,Stringlast,Stringemail,Stringnumber) {

firstName=first;

lastName=last;

emailAddress=email;

phoneNumber=number;

}

@Id

@GeneratedValue(strategy=GenerationType.AUTO)

@Column(name="id", nullable=false, updatable=false)privatelongid;

@Column(name="lastName", nullable=false, unique=false)privateStringlastName;

@Column(name="firstName", nullable=false, unique=false)privateStringfirstName;

@Column(name="emailAddress", nullable=false, unique=false)privateStringemailAddress;

@Column(name="phoneNumber", nullable=false, unique=false)privateStringphoneNumber;publicvoid setPhoneNumber(Stringnumber) { phoneNumber=number; }publicStringgetPhoneNumber() { return phoneNumber; }publicStringgetEmailAddress() { return emailAddress; }publicvoid setEmailAddress(Stringaddress) { emailAddress=address; }publicStringgetFirstName() { return firstName; }publicvoid setFirstName(Stringfirst) { firstName=first; }publicStringgetLastName() { return lastName; }publicvoid setLastName(Stringlast) { lastName=last; }publiclonggetId() { return id; }publicvoid setId(longnewId) { id=newId; }

@OverridepublicStringtoString() {

return id+""+firstName+""+lastName+""+emailAddress+""+phoneNumber;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值