Flex与Java整合连接数据库的实例
效果图为:
开发工具:eclipse+flex
数 据 库:SQL SERVER 2005
首先建立数据库:
数据库:companyDB
数据表:company
USE [companyDB]
GO
/****** 对象: Table [dbo].[company] 脚本日期: 04/15/2010 14:07:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[company](
[id] [int] IDENTITY(1,1) NOT NULL,
[employ_name] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[employ_sex] [char](2) COLLATE Chinese_PRC_CI_AS NULL,
[employ_address] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[employ_phone] [varchar](12) COLLATE Chinese_PRC_CI_AS NULL,
[employ_position] [varchar](30) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_company] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
工程结构如图
Company.java代码如下:
package com.zhn.model;
public class Company {
private int id;
private String employName;
private String employSex;
private String employPhone;
private String employAddress;
private String employPosition;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getEmployName() {
return employName;
}
public void setEmployName(String employName) {
this.employName = employName;
}
public String getEmploySex() {
return employSex;
}
public void setEmploySex(String employSex) {
this.employSex = employSex;
}
public String getEmployPhone() {
return employPhone;
}
public void setEmployPhone(String employPhone) {
this.employPhone = employPhone;
}
public String getEmployAddress() {
return employAddress;
}
public void setEmployAddress(String employAddress) {
this.employAddress = employAddress;
}
public String getEmployPosition() {
return employPosition;
}
public void setEmployPosition(String employPosition) {
this.employPosition = employPosition;
}
}
ConnectionDB.java为连接数据库及对数据库进行操作的公共方法的类,代码如下:
package com.zhn.db;
import java.sql.*;
import java.util.*;
import com.zhn.model.Company;
public class ConnectionDB {
private static Connection conn=null;
private static Statement stmt = null;
private static ResultSet rs = null;
/*
* 数据库链接声明
* 2000:com.microsoft.jdbc.sqlserver.SQLServerDriver
* 2000:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=sample,username,password
* 2005:com.microsoft.sqlserver.jdbc.SQLServerDriver
* 2005:jdbc:sqlserver://localhost:1433;DatabaseName=sample,username,password
*/
private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String CON_STR = "jdbc:sqlserver://";
private static final String HOST_NAME = "localhost:1433;";
private static final String DATABASE = "DatabaseName=companyDB";
private static final String USERNAME="sa";
private static final String PASSWORD="zhanghenan";
private static List all = null;
/*
* 链接数据库
*/
public static Connection getCon(){
try {
Class.forName(DRIVER);
conn = DriverManager.getConnection(CON_STR+HOST_NAME+DATABASE,USERNAME,PASSWORD);
} catch (Exception e) {
System.out.println("数据库链接失败:"+e.getMessage());
}
return conn;
}
/*
* 关闭连接
*/
public static void closeCon(Connection conn){
try{
if(conn!=null){
conn.close();
}
}catch(Exception e){
System.out.println("数据库关闭失败:"+e.getMessage());
}
}
/*
* 关闭Statement
*/
public static void closeStatement(Statement stmt){
try{
if(stmt!=null){
stmt.close();
}
}catch(Exception e){
System.out.println("Statement关闭失败:"+e.getMessage());
}
}
/*
* 关闭ResultSet
*/
public static void closeRS(ResultSet rss){
try{
if(rss!=null){
rss.close();
}
}catch(Exception e){
System.out.println("ResultSet关闭失败:"+e.getMessage());
}
}
/*
* 获取数据列表
*/
public static List getList(String sql){
conn = ConnectionDB.getCon();
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
if(rs!=null){
all = new ArrayList();
}
while(rs.next()){
Company com = new Company();
com.setId(rs.getInt("id"));
com.setEmployAddress(rs.getString("employ_address"));
com.setEmployName(rs.getString("employ_name"));
com.setEmployPhone(rs.getString("employ_phone"));
com.setEmployPosition(rs.getString("employ_position"));
com.setEmploySex(rs.getString("employ_sex"));
all.add(com);
}
ConnectionDB.closeStatement(stmt);
ConnectionDB.closeRS(rs);
ConnectionDB.closeCon(conn);
return all;
} catch (SQLException e) {
System.out.println("查询list失败:"+e.getMessage());
return null;
}
}
}
CompanyAction.java代码如下:
package com.zhn.action;
import java.util.*;
import com.zhn.model.*;
import com.zhn.db.*;
public class CompanyAction {
private List all = new ArrayList();
public Company[] getCompanyList(){
all = ConnectionDB.getList("select * from company");
Company[] comArr = new Company[all.size()];
for(int i=0;i<all.size();i++){
comArr[i] = (Company)all.get(i);
}
return comArr;
}
}
以上这些类熟悉java的人都应该明白。接下来是对Flex进行一些配置,是查询出的数据显示在Flex页面中:
首先是配置remoting-config.xml文件,在此文件中加上如下代码,将操作数据库的类进行配置保证flex与java之间的通信:
<destination id="companyAction">
<properties>
<source>com.zhn.action.CompanyAction</source>
</properties>
</destination>
将此配置好,我们就可以写页面显示部分了,创建FlexConJavaDB.mxml应用:
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="showMsg()">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
var ac:ArrayCollection = new ArrayCollection();
function showMsg():void{
companyAction.getCompanyList();
companyAction.addEventListener(ResultEvent.RESULT,getList);
}
[Bindable]
function getList(e:ResultEvent):void{
dg.dataProvider = e.result as Array;
}
]]>
</mx:Script>
<mx:RemoteObject destination="companyAction" id="companyAction"/>
<mx:DataGrid horizontalCenter="0" verticalCenter="13" id="dg">
<mx:columns>
<mx:DataGridColumn headerText="员工编号" fontSize="14" fontWeight="bold" dataField="id"/>
<mx:DataGridColumn headerText="员工姓名" fontSize="14" fontWeight="bold" dataField="employName"/>
<mx:DataGridColumn headerText="员工性别" fontSize="14" fontWeight="bold" dataField="employSex"/>
<mx:DataGridColumn headerText="员工电话" fontSize="14" fontWeight="bold" dataField="employPhone"/>
<mx:DataGridColumn headerText="员工住址" fontSize="14" fontWeight="bold" dataField="employAddress"/>
<mx:DataGridColumn headerText="员工职位" fontSize="14" fontWeight="bold" dataField="employPosition"/>
</mx:columns>
</mx:DataGrid>
<mx:Form horizontalCenter="-92" verticalCenter="244" width="423" height="230">
<mx:FormItem label="员工编号:">
<mx:Label text="{dg.selectedItem.id}"/>
</mx:FormItem>
<mx:FormItem label="员工姓名:">
<mx:Label text="{dg.selectedItem.employName}"/>
</mx:FormItem>
<mx:FormItem label="员工性别:">
<mx:Label text="{dg.selectedItem.employSex}"/>
</mx:FormItem>
<mx:FormItem label="员工电话:">
<mx:Label text="{dg.selectedItem.employPhone}"/>
</mx:FormItem>
<mx:FormItem label="员工地址:">
<mx:Label text="{dg.selectedItem.employAddress}"/>
</mx:FormItem>
<mx:FormItem label="员工职位:">
<mx:Label text="{dg.selectedItem.employPosition}"/>
</mx:FormItem>
</mx:Form>
</mx:Application>
笼统解释:
<mx:RemoteObject destination="companyAction" id="companyAction"/>
在页面获取remoting-config.xml中的配置,也是保证java与flex之间通信的重要步骤之一。
<mx:Script> 定义两个方法,一个是获取从java返回的集合,一个是定义的绑定事件。
在此,是将返回的数组直接绑定到DataGrid中做显示。
注意:在显示的时候,DataGrid中的属性dataField的值一定要与javaBean中的变量保持一致。
<mx:Form>是在点击DataGrid中某一条记录的时候显示用的。
- 大小: 22.3 KB
- 大小: 38.1 KB
分享到:
相关推荐
《Flex与Java整合教程——构建Simple OA自动化办公系统》 在现代企业信息化建设中,前端交互体验和后端强大处理能力的结合至关重要。Flex作为一款强大的富互联网应用程序(RIA)开发框架,以其丰富的用户界面和高效...
本实例中的"flex与java结合开发web",意味着前端使用Flex构建动态、交互性强的用户界面,而后端通过Java提供数据服务。这种架构的优势在于,Flex可以提供优质的用户体验,而Java则负责处理复杂的业务逻辑和数据管理...
Flex+Java登录实例完整框架是将 Adobe Flex 与 Java 技术结合,构建的一个功能完善的登录系统。这个框架主要用于创建富互联网应用程序(Rich Internet Applications,RIA),提供丰富的用户体验和强大的后端数据处理...
通过这个Flex的SSH整合实例,你可以了解到如何将富客户端应用与强大的Java后端相结合,实现高效的数据传输和复杂的业务逻辑。这种结合使得开发者能够充分利用Flex的图形界面优势和SSH的业务处理能力,构建出功能强大...
本项目“flex+java+mysql”是一个用户登录系统,它利用了这些技术的优势,为初学者提供了很好的学习实例。下面将详细阐述这个组合中的各个知识点。 1. Flex:Flex是由Adobe开发的一种开放源代码的开发框架,主要...
标题 "flex+java增删改查(spring+jpa)简单例子" 暗示了这是一个关于使用Adobe Flex作为前端UI框架,与Java后端结合,实现数据的CRUD(创建、读取、更新、删除)操作的教程。在这个场景中,Java后端使用Spring框架...
项目中的Spring+MyBatis整合,通常通过Spring的DataSource和SqlSessionFactoryBean进行配置,使得每次请求都能获得数据库连接并执行相应的SQL。此外,MyBatis的Mapper接口和XML配置文件定义了SQL语句和结果映射,使...
本文将详细阐述如何通过BlazeDS这一中间件,实现Flex与Java的完美整合,以完成数据库的增删改查操作。 1. **BlazeDS介绍** BlazeDS是Adobe官方提供的一款开源服务器端组件,它允许Flex客户端与Java服务器进行实时...
3. 数据持久化:Java服务器端可能使用JDBC(Java Database Connectivity)来连接数据库,执行SQL语句,完成数据的插入、更新和查询操作。数据库脚本的提供,使得开发者可以直接部署数据库结构,而不必手动编写建表...
总的来说,这个实例展示了如何将ArcGIS for Flex的可视化能力、BlazeDS的实时通信功能以及Java和Oracle数据库的强大数据处理能力整合在一起,实现高效、互动的GIS应用。通过深入学习和实践,开发者可以掌握GIS应用...
本项目“flex与struts2与hibernate与spring集成实例项目”就是一个典型的案例,它整合了四个关键的技术:Flex前端展示、Struts2作为MVC框架、Hibernate作为持久层框架以及Spring作为依赖注入和整体应用管理框架。...
Flex 富客户端开发整合主要涉及的是 Adobe Flex 与 Java 后端服务的交互,通过 BlazeDS 这个中间件来实现。以下是对这个主题的详细解释: 1. **Flex**: Flex 是一种用于构建富互联网应用程序(RIA)的开源框架,它...
在IT行业中,构建高效、可扩展的企业级应用是至关重要的,而"flex4+spring3+struts2+hibernate3+blazeds整合实例"是一个典型的Java Web开发架构,它结合了前端的Flex技术和后端的SSH(Spring、Struts2、Hibernate)...
在IT行业中,整合Hibernate、Flex和Spring框架是一个常见的任务,以构建高效、用户交互性强的Web应用程序。这个组合允许开发者利用Hibernate的ORM能力处理数据库操作,Flex的富互联网应用程序(RIA)界面,以及...
通过Spring的DataSource和SessionFactory Bean配置,可以将数据库连接和SessionFactory实例化交给Spring管理。此外,Spring的HibernateTemplate或HibernateDaoSupport类提供了一套便捷的方法,方便调用Hibernate的...
6. **实例价值**:这个登录实例对于初学者来说是一个很好的学习资源,因为它演示了如何将前端和后端技术有效地结合在一起,展示了Flex与Java后台的通信机制,以及如何在实际项目中利用Spring进行业务处理和使用...
整合BlazeDS时,你需要在Spring配置文件中配置MessageBroker,以便Flex客户端可以通过AMF(Action Message Format)与Java后端进行通信。此外,你还需要在Flex项目中配置Services,定义与Java服务的接口。 在Flex ...
总之,Spring与Flex的整合是现代Web开发中的一个重要实践,它结合了Java后端的强大功能和Flash前端的交互性,为企业级应用提供了丰富的解决方案。通过这个实例,开发者可以深入了解这一技术栈,并将其应用于实际项目...
Flex不仅限于前端开发,它还能够与Java等后端技术进行深度整合,实现前后端的无缝通信。书中通过多个章节,如《Flex和Java通信之BlazeDS》、《Flex+LCDS(BlazeDS)+Java开发》,系统地介绍了Flex与Java之间的数据交换...
2. **BlazeDS与Flex通信**:BlazeDS提供了一种简单的方法来连接Flex前端与Java后端,使得数据交换变得更加容易。它可以支持AMF (Action Message Format) 格式的序列化,从而提高数据传输效率。 3. **Hibernate与...