Flex与Java通信 BlazeDS方式 查询

Flex与java通信最简单例子(详细说明了各种需要注意的配置):http://blog.csdn.net/u010011052/article/details/9116869

Flex与java通信(java解析xml返回List,Flex调用java展示数据):http://blog.csdn.net/u010011052/article/details/9127643

 

这个例子要说的是:

通过java查询数据库返回实体对象集合给Flex,Flex进行展示数据:

 

1、java中的实体类

package tobaccoTrans.entity;

import javax.persistence.Id;
import java.io.Serializable;

/**
 * @author DWJ
 */
@javax.persistence.Entity
public class VIEW_CORP implements java.io.Serializable {

	// Fields
    @Id
	private String code;
	private String gbcode;
	private String name;
	private String simplename;
	private String style;
	private String parent;
	private String flag;
	
	public String getCode() {
		return code;
	}
	public void setCode(String code) {
		this.code = code;
	}
	public String getGbcode() {
		return gbcode;
	}
	public void setGbcode(String gbcode) {
		this.gbcode = gbcode;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSimplename() {
		return simplename;
	}
	public void setSimplename(String simplename) {
		this.simplename = simplename;
	}
	public String getStyle() {
		return style;
	}
	public void setStyle(String style) {
		this.style = style;
	}
	public String getParent() {
		return parent;
	}
	public void setParent(String parent) {
		this.parent = parent;
	}
	public String getFlag() {
		return flag;
	}
	public void setFlag(String flag) {
		this.flag = flag;
	}

}


2、JDBC连接Oracle的工具类:

这里就不贴出来了,想看的点这个里边就是这里用的连接工具类:http://blog.csdn.net/u010011052/article/details/9116873

 

3、Java查询方法:

package tobaccoTrans.dao.impl;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import tobaccoTrans.util.*;
import tobaccoTrans.entity.VIEW_CORP;

/**
 * @author DWJ
 */
public class CorpDaoImpl extends ConnectionUtil {
	private Connection con = null;
	private Statement stmt = null;
	private ResultSet rs = null;
	/**
	 * 方法说明:执行查询SQL语句  
	 * 输入参数:Connection con 数据库连接  
	 * 输入参数:String sql 要执行的SQL语句  
	 * 返回类型:void
	 */
	public List getAllCorp(String code,String gbcode,String name,String simplename,String style,String parent) {
		List<VIEW_CORP> list = new ArrayList<VIEW_CORP>();
		try {
			String sql = "select * from VIEW_CORP where 0 = 0 ";
			if (code != null && code.trim().length() != 0)
				sql = sql + " and code = '" + code + "' ";
			if (gbcode != null && gbcode.trim().length() != 0)
				sql = sql + " and gbcode = '" + gbcode + "' ";
			if (name != null && name.trim().length() != 0)
				sql = sql + " and name = '" + name + "' ";
			if (simplename != null && simplename.trim().length() != 0)
				sql = sql + " and simplename = '" + simplename + "' ";
			if (style != null && style.trim().length() != 0)
				sql = sql + " and style = '" + style + "' ";
			if (parent != null && parent.trim().length() != 0)
				sql = sql + " and parent = '" + parent + "' ";

			con = this.getConnection();
			stmt = con.createStatement(); // 获取Staetment对象
			rs = stmt.executeQuery(sql); // 执行数据库操作(查询操作)
			while(rs.next()) {
				VIEW_CORP corp = new VIEW_CORP();
				corp.setCode(rs.getString("code"));
				corp.setGbcode(rs.getString("gbcode"));
				corp.setName(rs.getString("name"));
				corp.setSimplename(rs.getString("simplename"));
				corp.setStyle(rs.getString("style"));
				corp.setParent(rs.getString("parent"));
				corp.setFlag(rs.getString("flag"));
				list.add(corp);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			this.closeResultSet(rs);
			this.closeStatement(stmt);
			this.closeConn(con);
		}
		return list;
	}
}

 

4、配置 remoting-config.xml 文件,准备工作不啰嗦了,前面已有详解:http://blog.csdn.net/u010011052/article/details/9116869

<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service" class="flex.messaging.services.RemotingService">

    <adapters>
        <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
    </adapters>

    <default-channels>
        <channel ref="my-amf"/>
    </default-channels>

	<!-- 这里配置你的java类,source路径是包名。类名 id随便起个名字 -->
    <destination id="CorpDaoImpl">  
         <properties>  
              <source>tobaccoTrans.dao.impl.CorpDaoImpl</source>
         </properties>  
    </destination> 
 

</service>


5、创建Flex项目(这个很关键,详细配置方法http://blog.csdn.net/u010011052/article/details/9116869),并编写mxml应用程序:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" 
			   initialize="init()" 
			   minWidth="955" minHeight="600">
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			import mx.events.FlexEvent;
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			
			[Bindable]
			private function init():void {
				// TODO Auto-generated method stub
				// 这里拿到的是一个 List<VIEW_CORP> 实体对象集合
				cdi.getAllCorp("","","","","","");
				//remotingtest.showVal();
			}
			
			[Bindable]
			var corpList:ArrayCollection = new ArrayCollection();
			protected function cdi_resultHandler(event:ResultEvent):void {
				// TODO Auto-generated method stub
				corpList = event.result as ArrayCollection;
			}
			
			[Bindable]
			protected function cdi_faultHandler(event:FaultEvent):void {
				
			}
		]]>
	</fx:Script>
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
		<s:RemoteObject id="cdi" destination="CorpDaoImpl" result="cdi_resultHandler(event)" fault="cdi_faultHandler(event)" />
	</fx:Declarations>
	<mx:Panel x="16" y="15" width="95%" height="95%" title="展示Cprp数据Panel">
		<mx:DataGrid x="15" y="15" width="92%" height="92%" id="dataGrid"  dataProvider="{corpList}">
			<mx:columns>
				<mx:DataGridColumn headerText="code" dataField="code" />
				<mx:DataGridColumn headerText="gbcode" dataField="gbcode" />
				<mx:DataGridColumn headerText="name" dataField="name" />
				<mx:DataGridColumn headerText="simplename" dataField="simplename" />
				<mx:DataGridColumn headerText="style" dataField="style" />
				<mx:DataGridColumn headerText="parent" dataField="parent" />
				<mx:DataGridColumn headerText="flag" dataField="flag" />
			</mx:columns>
		</mx:DataGrid>
	</mx:Panel>	
</s:Application>


6、现在可以直接运行mxml文件查看数据,当然这里写的是我的数据库查询,你将你的程序稍稍改动即可。

这个写法直接拿来用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值