- 浏览: 973217 次
- 性别:
- 来自: 珠海
文章分类
最新评论
-
Yunjey:
Yunjey 写道这样子的话、grid中的editable如何 ...
Flex创建可编辑以及分页的DataGrid -
Yunjey:
这样子的话、grid中的editable如何设置啊?!
Flex创建可编辑以及分页的DataGrid -
di1984HIT:
写的很好~~
JCalendar组件 -
sanny81:
此文真棒!感谢一路风尘的奉献!
但我有一疑 ...
Filter发送自定义数据详解 -
umgsai:
求完整demo umgsai@126.com
Flex和Jsp创建用户登入系统
一直都只有看到从Mysql读取数据到Flex app中然后显示在DataGrid控件中。还很少见到从Flex app中的Datagrid取得数据写回数据库的例子。在网上搜索了找到一篇用Flex,PHP,JSON的方法:具体请参考:Using Flex, PHP, and JSON to Modify a MySQL Database 。写的非常的简单明白,可惜的是自己没学过PHP。无法按照例子上完整的去实现,所以我把它更改用Java-Json的方法来实现同样的功能。
首先来看下这个例子的界面功能设计:包含一个dataGrid控件,两个按钮(读取和更新数据)以及一个Label控件用来提示用户操作的结果。
dataGrid包含四个列:员工的编号,姓名,性别以及部门。其中姓名这个列是可以编辑修改的:编辑后通过检查后,按更新按钮更新数据库。
接着来看下工作流程:Flex app是通过remoteObject方式与后台的java bean沟通的,然后在由java
bean连接mysql database,读取或更新数据。然后返回给flex app. 由于使用blazeDS,flex
app可以直接调用java 的方法,所以发送请求和接受数据都变的简单了。
那么,我门开始工作了。
首先,创建一个数据库:在mysql提示框中输入以下的SQL就可以创建一个简单的员工信息资料表。
CREATE DATABASE IF NOT EXISTS test; USE test; DROP TABLE IF EXISTS `employee`; CREATE TABLE `employee` ( `id` varchar(10) NOT NULL, `name` varchar(45) NOT NULL, `gender` varchar(10) NOT NULL, `department` varchar(45) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;我们来先看看那后台java bean的处理:他要接受flex app的读取数据和更新数据的请求,而且他们之间的数据传递格式采用的是json.所以我们的java bean的一个框架结构应该是:
public class JsonGrid { private Connection con = null; private String myDriver = "com.mysql.jdbc.Driver"; private String conURL = "jdbc:mysql://localhost:3306/test"; private String userName = "root"; private String userPass = "12345"; public Connection conToDB(){ try{ Class.forName(myDriver); con = DriverManager.getConnection(conURL,userName,userPass); }catch(Exception e){ e.printStackTrace(); } return con; } public String getJsonArray(){ String result= new String(); return result; } public String sendJsonArray(String jsonData){ String result= new String(); return result; } }里面包含了两个重要的方法(getJsonArray()和sendJsonArray())分别对应flex app的读取数据和更新数据的请求。在getJsonArray()方法中,要连接数据库,取得员工的信息资料,然后按照json格式封装数据,结果返回 给flex app,由flex app中的datagrid显示出来。我们具体看看getJsonArray()这个方法:
public String getJsonArray(){ JSONArray jsonEmployeeArray = new JSONArray(); ResultSet rs = null; String result= new String(); try{ Connection conToDb = conToDB(); Statement stmt = conToDb.createStatement(); rs=stmt.executeQuery("select * from employee"); while(rs.next()){ JSONObject jsonEmployee = new JSONObject(); jsonEmployee.put("id", rs.getString("id")); jsonEmployee.put("name", rs.getString("name")); jsonEmployee.put("gender", rs.getString("gender")); jsonEmployee.put("department", rs.getString("department")); jsonEmployeeArray.add(jsonEmployee); } result = jsonEmployeeArray.toString(); conToDb.close(); //result = new JSONObject().put("jsonEmployeeArray",jsonEmployeeArray).toString(); }catch(SQLException ex){ ex.printStackTrace(); } return result; }内容其实都很简单,只是读取数据和封装成json格式的数据,最后把json array格式的jsonEmployeeArray转换成string格式传输给flex app.即return语句。而当flex app要使用这个json array格式的数据,自然需要按照json格式解码等,后面在介绍。接着看看那个更新数据的方法sendJsonArray():
public String sendJsonArray(String jsonData){ String result= new String(); //jsonData = jsonData.replace("\\", ""); JSONArray jsonArray = JSONArray.fromObject(jsonData); try{ Connection conToDb = conToDB(); Statement stmt = conToDb.createStatement(); for(int i=0;i<jsonArray.size();i++){ JSONObject jsonObject = JSONObject.fromObject(jsonArray.getString(i)); String id = jsonObject.getString("id"); String name = jsonObject.getString("name"); stmt.executeUpdate("update employee set name='"+name+"' where id='"+id+"'"); } result="恭喜,成功更新数据!"; conToDb.close(); }catch(Exception e){ e.printStackTrace(); } return result; }即把flex app传递过来的String类型的json格式的的数据解码开来,然后根据对应的Id把更新后的名字保存在数据库中。这里我们传递过来的是整个 datagrid的信息,不管是有没有更新的,都要循环的更新所有员工的信息。所以呢,在你的程序中你的JsonGrid.java文件应该类似:
package jsongrid; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class JsonGrid { private Connection con = null; private String myDriver = "com.mysql.jdbc.Driver"; private String conURL = "jdbc:mysql://localhost:3306/test"; private String userName = "root"; private String userPass = "liceven"; public Connection conToDB(){ try{ Class.forName(myDriver); con = DriverManager.getConnection(conURL,userName,userPass); }catch(Exception e){ e.printStackTrace(); } return con; } public String getJsonArray(){ JSONArray jsonEmployeeArray = new JSONArray(); ResultSet rs = null; String result= new String(); try{ Connection conToDb = conToDB(); Statement stmt = conToDb.createStatement(); rs=stmt.executeQuery("select * from employee"); while(rs.next()){ JSONObject jsonEmployee = new JSONObject(); jsonEmployee.put("id", rs.getString("id")); jsonEmployee.put("name", rs.getString("name")); jsonEmployee.put("gender", rs.getString("gender")); jsonEmployee.put("department", rs.getString("department")); jsonEmployeeArray.add(jsonEmployee); } result = jsonEmployeeArray.toString(); conToDb.close(); //result = new JSONObject().put("jsonEmployeeArray",jsonEmployeeArray).toString(); }catch(SQLException ex){ ex.printStackTrace(); } return result; } public String sendJsonArray(String jsonData){ String result= new String(); //jsonData = jsonData.replace("\\", ""); JSONArray jsonArray = JSONArray.fromObject(jsonData); try{ Connection conToDb = conToDB(); Statement stmt = conToDb.createStatement(); for(int i=0;i<jsonArray.size();i++){ JSONObject jsonObject = JSONObject.fromObject(jsonArray.getString(i)); String id = jsonObject.getString("id"); String name = jsonObject.getString("name"); stmt.executeUpdate("update employee set name='"+name+"' where id='"+id+"'"); } result="恭喜,成功更新数据!"; conToDb.close(); }catch(Exception e){ e.printStackTrace(); } return result; } }接下来我们看看flex app前台的处理。
评论
4 楼
yexin218
2010-03-08
ballanfeng 写道
提三点建议,既然做就要做好。
1、更新数据库的时候,既然是更新所有的,为什么没有事务管理?
2、执行更新的时候返回的是个Boolean对象,为什么没有判断直接返回更新成功,这不是欺骗客户吗?
3、建议关闭connection时候放在finally里处理.
1、更新数据库的时候,既然是更新所有的,为什么没有事务管理?
2、执行更新的时候返回的是个Boolean对象,为什么没有判断直接返回更新成功,这不是欺骗客户吗?
3、建议关闭connection时候放在finally里处理.
当初没有考虑那么多,如果要professional点的话,就像您说的那样,多谢
3 楼
ballanfeng
2010-03-08
提三点建议,既然做就要做好。
1、更新数据库的时候,既然是更新所有的,为什么没有事务管理?
2、执行更新的时候返回的是个Boolean对象,为什么没有判断直接返回更新成功,这不是欺骗客户吗?
3、建议关闭connection时候放在finally里处理.
1、更新数据库的时候,既然是更新所有的,为什么没有事务管理?
2、执行更新的时候返回的是个Boolean对象,为什么没有判断直接返回更新成功,这不是欺骗客户吗?
3、建议关闭connection时候放在finally里处理.
2 楼
yexin218
2008-06-11
哦, 有时间的话,我考虑下,因为用到很多lib,所以体积有点大。其实代码我都完整的贴出来,自己整理下就好了
1 楼
孤独浪子
2008-06-11
不错,呵呵
学习下
如果能把源代码发出来,让新手学习下,就更好了,谢谢!
学习下
如果能把源代码发出来,让新手学习下,就更好了,谢谢!
发表评论
-
Rounded Colorized Image Borders
2009-05-16 22:24 1088This week I ran across a really ... -
Flex使用自定义皮肤和字体
2009-03-29 14:57 4246首先介绍两个Flex皮肤网站: 1. Skins and Th ... -
Flex--XML转换成ArrayCollection
2009-03-28 23:24 9676xml数据: <?xml version="1 ... -
Flex使用弹出窗口为DataGrid添加新数据
2009-03-28 21:01 2688经常在Demo中会看到列表,表格等方式来显示数据。当然有时候也 ... -
关于Flex使用Blazeds连接Java后台的一个注意笔记
2009-03-24 16:49 2223今天在做Flex程序测试的时候,发现之前可以通过Blazeds ... -
Flex-设置DataGrid被选择行的风格
2009-03-22 20:54 7218这里例子将展示如何使用用户自定义的item renderer来 ... -
Flex使用JSON格式与Java通信
2009-03-22 00:09 7333在使用Flex,Java,Json更新Mysql数据【高级篇】 ... -
Flex--主程序与弹出窗口之间传递数据
2009-03-20 23:08 2684主程序:TitleWindowDataTest.mxml & ... -
Flex中显示手型鼠标
2009-03-06 21:40 5228有些时候,我们需要在Flex组件上--Label或者Butto ... -
Flex与JSON及XML的互操作
2009-03-01 17:18 1925作者 Jack Herrington 译者 张凯 ... -
Flex代码格式化插件
2009-03-01 16:52 2750在7Yue 那里看到这个轻巧实用的Eclipse插件,它可以 ... -
Flex-CUBlog排行榜解析
2008-07-29 20:55 1984不知道为什么一直有一个想法把CUBlog排行榜的数据提取出来放 ... -
使用Flex,Java,Json更新Mysql数据【高级篇】
2008-06-24 20:21 5845前面已经介绍如何使用Flex,java,json来更新dat ... -
Flex+Java Servlet文件上传实例
2008-06-23 21:05 20313资源都是来自网上。本实例将展示使用Flex和java serv ... -
Flex和Jsp创建用户登入系统
2008-06-22 16:16 4307在开始之前我们先来看下效果:【userName==passwo ... -
Flex中嵌入Google地图
2008-06-18 22:29 5985在我们开始之前,先来看一个例子:http://scriptpl ... -
Flex程序发布
2008-06-17 23:32 4019当你写好了一个Flex程序,想要按照某种方式发布。比如我们在 ... -
Flex自定义Alert窗口显示位置
2008-06-16 18:25 6347好像Flex3也没有找到可以直接使用的(x,y)的方法来指定A ... -
Flex支持滑轮滚动
2008-06-16 18:23 3451有些时候需要在Flex界面中支持鼠标的滑轮滚动功能,比如通过滑 ... -
Flex实现简单的Email发送
2008-06-14 16:35 4396本文主要介绍和实现怎么使用Flex-java来实现Em ...
相关推荐
详细请见:使用Flex,Java,Json更新Mysql数据 。但是有一个问题就是在更新的时候都是发送整个datagrid的dataprovider中信息到数据库,无论有的资料并没有需要更新,这样处理起来效率就很低了。所在在高级篇中我想...
在IT行业中,Flex、Java和MySQL是三种非常重要的技术,它们常常被联合使用来构建高效、用户友好的Web应用程序。本实例将详细讲解如何利用这些技术进行开发。 Flex是一种基于Adobe AIR的应用程序开发框架,主要用于...
7. **Flex数据绑定**:在Flex客户端,你可以使用数据绑定技术将接收到的Java对象直接绑定到UI组件上,实现数据的实时更新。 8. **事件驱动编程**:Flex应用是事件驱动的,当Java端有新数据时,可以通过BlazDS的...
3. **后端处理**:Java服务器接收到请求后,解析数据,使用JDBC连接到MySQL数据库。编写SQL查询语句,例如`SELECT * FROM users WHERE username = ? AND password = ?`,其中问号是预编译的参数,防止SQL注入。 4. ...
【Java整合Flex的Web小项目】是一个典型的前后端分离的应用开发案例,主要涉及的技术栈包括Java、MySQL数据库、Adobe Flex前端以及JSON数据交换格式。在这个项目中,Java作为后端服务器,负责处理业务逻辑和数据操作...
标题 "一个Flex+Jsp+Mysql实现的增删查改例子" 描述了一个使用Flex前端、JSP作为服务器端脚本以及MySQL数据库构建的典型Web应用实例,主要用于展示基本的CRUD(创建、读取、更新、删除)操作。这个例子通过整合这三...
下载不扣分,回帖加1分。 此压缩包, ...│ Flex+Java+Json+BlazeDS+MySQL资料.doc │ Flex.pdf │ J2EE项目整合FLEX项目.doc │ 在eclipse 的一个项目中同时开发j2ee模块和flex 客户端模块.doc │
通过Servlet或Spring MVC等框架,Java将处理这些请求并返回相应的JSON或XML数据,供Flex解析展示。此外,Java还可以连接数据库,如MySQL或Oracle,实现数据的持久化存储,确保留言信息的安全和可靠性。 具体实现上...
在部分内容中,提到了使用Flex、Java和JSON来更新MySQL数据,这表明在Flex客户端和Java服务器之间,JSON(JavaScript Object Notation)被用作数据交换格式。JSON是一种轻量级的数据交换格式,易于人阅读和编写,...
使用Spring Boot或Java EE框架可以构建RESTful API,为Flex前端提供数据服务。 4. **RESTful API**:API是应用程序之间通信的桥梁。使用REST(Representational State Transfer)架构风格设计API,可以实现轻量级、...
而 BlazeDS 是一款免费的服务器端 Java 软件,它作为 Flex 应用程序与 Java 后端服务之间通信的桥梁,实现了高效的数据交换与实时消息传递。 #### 二、Flex 与 BlazeDS 的结合优势 1. **高性能通信**:通过 ...
这些代理负责处理数据库交互,并通过AMF(Action Message Format)或XML/JSON等格式与Flex客户端交换数据。 5. iBATIS与Flex的整合: 在服务器端,我们可以使用iBATIS来编写SQL映射文件,这些文件包含登录验证所需...
1:BlazeDS集成 Flex+Tomcat开发J2EE模块整合实例 2:Flex + LCDS + Java 入门教程 3:Flex+Java+Json+BlazeDS+MySQL资料 4:J2EE项目整合FLEX项目 5:在eclipse 的一个项目中同时开发j2ee模块和flex 客户端模块
本项目名为“flex、java聊天室”,结合提供的标签“源码”和“工具”,我们可以推断这是一个使用Adobe Flex作为前端UI框架,Java作为后端服务器平台的聊天应用实例。下面将详细介绍Flex和Java在聊天室实现中的关键...
在这个系统中,Flex4作为客户端开发工具,提供了丰富的图形用户界面(GUI)和交互体验,而Java则在服务器端负责处理数据传输和业务逻辑。 1. **Flex4**:Flex4是Adobe开发的一套用于构建富互联网应用程序(RIA)的...
根据提供的标题、描述、标签和部分内容,本文将详细介绍如何利用Flex 2.0、Java、JSON与MySQL数据库结合,创建一个既支持数据编辑又能实现分页功能的DataGrid。 ### Flex 2.0 创建可编辑及分页 DataGrid #### 一、...
Flex cookbook、flex与java交互、As3 中文API、AS3 编程清晰版、使用AS组件、BlazeDS集成Flex开发J2EE实例、Flex+Java配置、Flex+Java+Json+BlazeDS+MySQL资料、整合Flex和Java--配置篇…… (全部是中文材料)
综上所述,这些资源可能是对使用Flex进行前端开发,Java进行后端处理,并利用JSON作为数据传输媒介的深入教程。学习者可以通过这些材料了解如何构建交互式的Flex应用,实现数据的增删改查,以及优化用户界面的显示和...
1. Flex支持数据绑定,可以将UI组件直接绑定到业务对象,当数据发生变化时,界面自动更新。 2. 定义Model类,代表数据库表的结构,这些类可以映射到DAO返回的对象。 七、错误处理和安全 1. 异常处理:在Flex中,对...