欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOCX文档下载
 

Flex连接数据库三种方法

  • 资源ID:183729142       资源大小:15.64KB        全文页数:6页
  • 资源格式: DOCX        下载积分:15积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要15积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

Flex连接数据库三种方法

Flex连接数据库三种方法首先,做一点说明。Flex是不能直接连接数据库的,这一点大家需要知道,它只能间接地连接数据库。Flex 中提供了三种方式:HttpService,WebService和RemoteObject。其中HttpService可以直接获取XML中 的数据,还可以通过JSP,ASP以及PHP读取数据库中的数据,这个比较简单,而且网上也有很多例子,我 就不多说了。WebService我不懂,请自己查资料。我一直用的是JAVA对象连接数据库,感觉这个挺方便, 而且J2EE的技术已经很成熟。今天的教程就是以Flex + JAVA + SQLServer获取数据库公告信息为例简单 说一下RemoteObject的用法。前提1. 确保你安装了 Flex Data Service。这个对于单个CUP无限APP是免费的,可以去Adobe下载。如果只是 读取XML文件是不需要这个的,连接数据库就需要它了。2. 安装了 Flex Builder或者有Flex SDK。我这里使用的是Flex Builder(IDE就是方便啊 W3. 安装了 SQLServer数据库。4. 安装了 JRUN或者tomcat或其它的J2EE容器,因为发布的时候我们的程序要运行在J2EE平台上。5. 安装了 JDK。第一步:创建数据库这里我们有一个公告表,表名为Bulletino结构如下:字段名称字段类型说明ID自动编号 自动编号title Nvarchar(100)题目date datatime 日期author Nvarchar(20) 作者content ntext内容在数据库中创建这个表。保存之后进入下一步。第二步:在JAVA中编写获取公告的代码首先,我们要创建一个公告类来专门保存获取的公告信息,代码如下。NoticeInfo.javapackage net.zhuoqun.connectDB;import java.util.Date;public class Noticeinfo private String title; / 标题private String author; / 作者private String content;/ 内容private Date dates; / 时间public String getAuthor() return author;)public void setAuthor(String author) this.author = author;)其它get和set方法。)创建好这个之后我们要创建一个数据查询类:DataServiceimpl.java来查询数据库,并将查询结果传给将要 创建的Flex程序。由于我们不清楚有多少条记录,所以就借助一下JAVA中的ArrayList这个类,它位于java.util 包中。先创建一个 ArrayList:ArrayList noticeList = new ArrayList();查询数据库之后,每读取一条记录就添加到noticeList。while(rs.next()NoticeInfo temp = new NoticeInfo();temp.setAuthor(rs.getString("author");temp.setContent(rs.getString("content");temp.setDates(rs.getDate("date");temp.setTitle(rs.getString("title");noticeList.add(temp);)查询完毕之后你就可以把这个noticeList传回去,你也可以传回去一个NoticeInfo数组:NoticeInfo notices = new NoticeInfonoticeList.size();for(int i=0;i<noticeList.size();i+)notices = (NoticeInfo)noticeList.get(i);)return notices;我这里用的是后一种方法。如果你直接把noticeList传回去的话,记住一点,JAVA的ArrayList类型的对象到了 Flex中会变成ArrayCollection类型的。现在JAVA部分的代码就写好了。DataServiceImpl.java的全部代码如下:package net.zhuoqun.connectDB;import java.sql.*;import java.util.ArrayList;import java.util.Date;public class DataServiceImpl private Connection conn = null;private Statement stmt = null;/以下是数据库以及驱动信息public final static String DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver"public final static String CONN_STR_PRE = "jdbc:microsoft:sqlserver:/"public final static String HOST_NAME = "localhost:1433;"public final static String DATABASE_NAME = "DatabaseName=mydata"public final static String USERNAME = "aaa"public final static String PASSWORD = "aaa"public DataServiceImpl()/查询数据库private ResultSet executeQuery(String sqlText)tryClass.forName(DRIVER);catch(ClassNotFoundException e)(e.printStackTrace();try(conn = DriverManager.getConnection(CONN_STR_PRE + HOST_NAME + DATABASE_NAME, USERNAME, PASSWORD);stmt = conn.createStatement();ResultSet rs = stmt.executeQuery(sqlText);return rs;catch(SQLException e)(e.printStackTrace();return null;/查询公告.这个是本程序的关键代码public NoticeInfo getNotices()(ArrayList noticeList = new ArrayList();String sqlText = "select author,content,date,title from Bulletin"ResultSet rs = executeQuery(sqlText);try(while(rs.next()(NoticeInfo temp = new NoticeInfo();temp.setAuthor(rs.getString("author");temp.setContent(rs.getString("content");temp.setDates(rs.getDate("date");temp.setTitle(rs.getString("title");noticeList.add(temp);NoticeInfo notices = new NoticeInfonoticeList.size();for(int i=0;i<noticeList.size();i+)(notices = (NoticeInfo)noticeList.get(i);return notices;catch(SQLException e)(e.printStackTrace();return null;第三步:配置 Flex Data Service1,把刚才写的JAVA文件编译。打开FDS的安装文件夹,将编译的文件拷贝到jrun4serversdefaultflexWEB-INFclasses 文件夹中,进行下面的配置。2.打开 FDS 的安装文件夹。进入 jrun4serversdefaultflexWEB-INFflex 目录。里面是关于 FlexDataService的配置文件,我们这里只看RemoteObject如何配置,其它配置信息请自己看帮助。现在我们打开 里面的remoting-config.xml文件。向里面添加如下信息,作为service>的子标签:程序代码<destination id="dataService"><properties><source>net.zhuoqun.connectDB.DataServiceImpl</source></properties></destination>当你设定了 destination的时候,你就引用了了可以用来连接相应类的信息通道(messaging channel)。 它的id必须在文件中是独一无二的。source属性是指你编译的JAVA类在classes文件夹中的路径。由于 我的 DataServiceImpl 类在 classesnetzhuoqunconnectDB 中,所以 source 的值为net.zhuoqun.connectDB.DataServiceImpl。记住,不要写.class 后缀。properties>标签还可以有一个 <scope>子标签,其作用我在这里就不说了,大家自己看相关文档(关于FDS的配置其实有很多东西,这 些在帮助文档里都有,我这里不多说了,也说不过来,自己看吧)。现在我们已经配置好了后台的FDS,做完了整个程序的大部分工作,接下来就是前台Flex程序调用的事情 了。第四步:创建Flex程序打开Flex Builder,新建一个工程ConnectDB。菜单栏中File -> New -> Flex Project,这时会弹出一个对 话框,选择Flex Data Service,创建了一个Flex工程。第五步:通过RemoteObject访问数据库打开工程中生成的主文件ConnectDB.mxml,声明一个RemoteObject :程序代码<mx:RemoteObjectid="getData"destination="dataService"result="proccessResult(event.result)"fault="Alert.show(event.fault.faultString,' Error')"/>其中destination的值是刚才我们在配置FDS的时候设定的destinationo result表示在这个RemoteObject成功返回之后所要做的动作,这里我们调用一个方法proccessResult()来处理返回的数据, 它的参数event.result就是从服务器段获得的数据,数据是作为一个对象传过来的。fault表示在这个 RemoteObject请求失败时要做的处理,这里我们会弹出一个显示错误信息的对话框。接下来我们要声明一 个DataGrid控件来显示公告的标题和发布日期:程序代码<mxataGrid id="myDG"><mx:columns><mxataGridColumn headerText="标题"dataField="title"/><mxataGridColumn headerText="发布日期"dataField="dates" labelFunction="formatDate"/> </mx:columns></mx:DataGrid>其中headerText是显示在上方的表头,dataField表示要显示的数据域,为什么数据域是title和dates呢? 因为我们传回的是一个NoticeInfo对象数组,虽然它是作为一个对象传回来的,但是其中的数据结构并没 有变,那些数据域的名字也没有变,所以我们可以根据NoticeInfo中的变量设定dataField。labelFunction 属性是用来格式化显示的,因为传回来的是格林威治时间,所以我们需要将其格式化然后显示出来。注意, 这里只是显示两个数据域,并不代表其它的数据都没有了,它们仍然存在,只是没有显示出来。接下来,在<mx:Script>标签中编写proccessResult()方法和格式化日期的formatDate方法:程序代码private function proccessResult(result:Object):void(myDG.dataProvider = ArrayUtil.toArray(result);)private function formatDate(item:Object,column:DataGridColumn):String(return df.format(item.dates);)/ df是一个DateFormatter,在下面会给出。关于如何格式化DataGrid的显示/以及DateFormatter这里就不讨论了,帮助里写得很清楚这个函数只是简单地将获得的数据传给myDG的dataProvider。result的类型是Object,因为数据是作为 一个对象传过来的。之所以调用ArrayUtil.toArray()这个方法,是因为返回的记录可能只有一条,而myDG 的dataProvider显示单个对象的时候可能会出错,所以安全起见先将其转换成数组。最后,我们编写调用RemoteObject的方法,使其在程序启动时就调用。程序代码private function initApp():void(getData.getNotices();)其中 getData 是 RemoteObject 的 id,getNotices()是 DataServiceImpl.java 中的方法。在这里可以直接调 用它。当然,如果DataServiceImpl.java有其它方法,也可以通过这种方式直接调用。接下来设定组件创 建完毕时调用initA叩()方法,在<mx:Application>中添加一个creationComplete属性:程序代码<mx:Application xmlns:mx=" fontSize="12"creationComplete="initApp()">ConnectDB.mxml的全部代码:程序代码<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx=" fontSize="12"creationComplete="initApp()"><mx:Script><!CDATAimport mx.controls.Alert;import mx.utils.ArrayUtil;private function initApp():void(getData.getNotices();)private function proccessResult(result:Object):void(myDG.dataProvider = ArrayUtil.toArray(result);)private function formatDate(item:Object,column:DataGridColumn):String(return df.format(item.dates);)/ df是一个DateFormatter,在下面会给出。关于如何格式化DataGrid的显示/以及DateFormatter这里就不讨论了,帮助里写得很清楚></mx:Script><mx:DateFormatter id="df" formatString="YYYY-MM-DD"/><mx:RemoteObject id="getData"destination="dataService"result="proccessResult(event.result)"fault="Alert.show(event.fault.faultString, Error')"/><mx:DataGrid id="myDG"><mx:columns><mx:DataGridColumn headerText="标题"dataField="title"/><mx:DataGridColumn headerText="发布日期"dataField="dates"labelFunction="formatDate"/></mx:columns></mx:DataGrid> </mx:Application>整个工程终于完成,启动JRUN,然后运行程序,查看程序结果 如果是其他数据库,只需要改一下数据库驱动信息就可以了

注意事项

本文(Flex连接数据库三种方法)为本站会员(mar****e6)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!