flash与数据库读取数据库数据.docx

上传人:b****0 文档编号:18129468 上传时间:2023-08-13 格式:DOCX 页数:21 大小:19.51KB
下载 相关 举报
flash与数据库读取数据库数据.docx_第1页
第1页 / 共21页
flash与数据库读取数据库数据.docx_第2页
第2页 / 共21页
flash与数据库读取数据库数据.docx_第3页
第3页 / 共21页
flash与数据库读取数据库数据.docx_第4页
第4页 / 共21页
flash与数据库读取数据库数据.docx_第5页
第5页 / 共21页
flash与数据库读取数据库数据.docx_第6页
第6页 / 共21页
flash与数据库读取数据库数据.docx_第7页
第7页 / 共21页
flash与数据库读取数据库数据.docx_第8页
第8页 / 共21页
flash与数据库读取数据库数据.docx_第9页
第9页 / 共21页
flash与数据库读取数据库数据.docx_第10页
第10页 / 共21页
flash与数据库读取数据库数据.docx_第11页
第11页 / 共21页
flash与数据库读取数据库数据.docx_第12页
第12页 / 共21页
flash与数据库读取数据库数据.docx_第13页
第13页 / 共21页
flash与数据库读取数据库数据.docx_第14页
第14页 / 共21页
flash与数据库读取数据库数据.docx_第15页
第15页 / 共21页
flash与数据库读取数据库数据.docx_第16页
第16页 / 共21页
flash与数据库读取数据库数据.docx_第17页
第17页 / 共21页
flash与数据库读取数据库数据.docx_第18页
第18页 / 共21页
flash与数据库读取数据库数据.docx_第19页
第19页 / 共21页
flash与数据库读取数据库数据.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

flash与数据库读取数据库数据.docx

《flash与数据库读取数据库数据.docx》由会员分享,可在线阅读,更多相关《flash与数据库读取数据库数据.docx(21页珍藏版)》请在冰点文库上搜索。

flash与数据库读取数据库数据.docx

flash与数据库读取数据库数据

今天,天气依旧很热。

整个房间像火炉一般炽热。

今天来写写这方面的笔记,做个实验。

看看如何运作,首先来讲这方面需要准备一些资料。

就是关于数据库方面资料。

因为手上资料很少,很多事情都是需要一步步探索。

flash不能直接和数据库进行交互(除air之外),故此我们需要找一种平台搭配一些协作开发。

目前很多流行的方案是多种多样,每一个家公司用的服务器都有所不同。

据一些同事介绍,

搭配平台如下

(1):

java+flash+mysql组合开发

(2):

c+++flash+sql组合开发

(3):

php+flash+mysql组合开发

还有FMS,等等更多组合..........

flash只是用于前端显示数据和交互,大部分交互数据方面需要借助其他语言帮助

目前而言mysql已经可以满足很多开发公司,除非有特别需求动用到oracle甲骨文这样的大型数据,但无论怎样组合目的就是要实现到产品。

好,现在开始做实验了。

需要准备的材料是:

javasdktomcat,mysql等一些工具。

准备好之后,开始一步步摸索怎样交互。

我的目的是读取到数据库的数据。

当中实验当中遇到问题是

(1)怎样利用读取数据库的资料?

(2)怎样返回数据给flash接收?

(3)采用什么方式格式来交互?

(4)格式应该如何选择?

xmljson字符串?

(5)应该如何显示数据?

接下来,尝试实验第一种方式,也是最简单,最傻瓜的方式,我所知道的就是这样水平,所以要将这个实验带入一个开始阶段将不会掺杂更多完善的设计。

出发的过程就需要尽量简单化。

(O(∩_∩)O哈哈~)

初步意向:

flash发送数据---->服务端------->数据库

flash接收数据<-----服务器<--------数据库

要进行这样,我们需要采用包下URLLoader进行发送数据(而flex就采用Http组件或者其他远程访问)。

准备好之后,我们拥有的条件已经可以进行一个简单的发送了。

封装一个发送数据的类。

用于交互发送

创建news表

手动设计表:

设置两个项一个是id另外一个是title这样的数据项。

如图所示。

数据库名称为test,表名为news。

 

然后

手动为表添加一些数据入去。

 

测试数据库是否成功和数据库交互:

添加完数据库后,在这里会使用jsp进行测试,而这种方式比较笨拙,而且效率不高,一般不会这样使用,但是这样做好处是为了省下时间做快速设计。

而我们所在水平是如何,这些并不重要,关键是要适合我们,在方法当中寻找过程解决方案。

这些才重要。

技术水平因人而异

而其他更加优秀的做法,有一些人会严格使用框架技术,这样操作和链接数据库在效率提升不少。

下面是已经链接到数据库的测试。

viewplaincopytoclipboardprint?

<%@pagecontentType="text/html;charset=utf-8"language="java"import="java.sql.*"errorPage=""%>

<%

Connectioncon=null;

try{

Class.forName("com.mysql.jdbc.Driver");

StringdbUrl="jdbc:

mysql:

//localhost:

3306/test?

useUnicode=true&characterEncoding=utf-8";

StringdbUser="root";

StringdbPwd="123";

Stringsql="select*fromnews";

con=DriverManager.getConnection(dbUrl,dbUser,dbPwd);

out.print("已连接。

");

}

catch(Exceptionex)

{

out.print("连接失败!


"+ex.toString());

}

%>

<%@pagecontentType="text/html;charset=utf-8"language="java"import="java.sql.*"errorPage=""%>

<%

Connectioncon=null;

try{

Class.forName("com.mysql.jdbc.Driver");

StringdbUrl="jdbc:

mysql:

//localhost:

3306/test?

useUnicode=true&characterEncoding=utf-8";

StringdbUser="root";

StringdbPwd="123";

Stringsql="select*fromnews";

con=DriverManager.getConnection(dbUrl,dbUser,dbPwd);

out.print("已连接。

");

}

catch(Exceptionex)

{

out.print("连接失败!


"+ex.toString());

}

%>

数据库测试成功之后,我们需要的工作就是利用SQL语句,查询数据并输出。

jsp做法是

sql语句:

Stringsql="select*fromnews";

创建一个Statement对象,通过执行executeQuery返回。

Statementstmt=con.createStatement();

ResultSetrs=stmt.executeQuery(sql);//执行查询

查询的结果集,采用循环输出来

while(rs.next())

{

msg+=rs.getString("title")+"##";

}

out.clear();

out.print("newList="+msg);

你会看到一系列的数据出现了

viewplaincopytoclipboardprint?

<%@pagecontentType="text/html;charset=utf-8"language="java"import="java.sql.*"errorPage=""%>

<%

Connectioncon=null;

try{

Class.forName("com.mysql.jdbc.Driver");

StringdbUrl="jdbc:

mysql:

//localhost:

3306/test?

useUnicode=true&characterEncoding=utf-8";

StringdbUser="root";

StringdbPwd="123";

Stringsql="select*fromnews";

con=DriverManager.getConnection(dbUrl,dbUser,dbPwd);

out.print("已连接。

");

Statementstmt=con.createStatement();

ResultSetrs=stmt.executeQuery(sql);//执行查询

Stringmsg="";

while(rs.next())

{

msg+=rs.getString("title")+"##";

}

out.clear();

out.print("newList="+msg);

 

stmt.close();

con.close();

}

catch(Exceptionex)

{

out.print("连接失败!


"+ex.toString());

}

%>

<%@pagecontentType="text/html;charset=utf-8"language="java"import="java.sql.*"errorPage=""%>

<%

Connectioncon=null;

try{

Class.forName("com.mysql.jdbc.Driver");

StringdbUrl="jdbc:

mysql:

//localhost:

3306/test?

useUnicode=true&characterEncoding=utf-8";

StringdbUser="root";

StringdbPwd="123";

Stringsql="select*fromnews";

con=DriverManager.getConnection(dbUrl,dbUser,dbPwd);

out.print("已连接。

");

Statementstmt=con.createStatement();

ResultSetrs=stmt.executeQuery(sql);//执行查询

Stringmsg="";

while(rs.next())

{

msg+=rs.getString("title")+"##";

}

out.clear();

out.print("newList="+msg);

 

stmt.close();

con.close();

}

catch(Exceptionex)

{

out.print("连接失败!


"+ex.toString());

}

%>

 

输出数据:

 

这里是由于在数据库预先插入去了。

(方式依旧是人工和手动设计。

呵呵)

flash接收数据

接下来,我们就需要解决发送的问题?

问题是怎样发送数据到flash客户端?

发送的方式是多种多样,当中可以是名称/值的方式发送,也可以按xml,json还有其他格式发送。

这里是从数据库接收到的数据。

并显示出来的

 

按实验来进行一步步来制作。

封装一个类,进行发送数据

viewplaincopytoclipboardprint?

//用于与网页通信的类

packageorg.summerT

{

import.URLLoader;

import.URLRequest;

importflash.events.*;

import.URLVariables;

import.URLLoaderDataFormat;

import.*;

publicclassHttpConnectionextendsEventDispatcher

{

publicstaticconstVARIABLES:

String=URLLoaderDataFormat.VARIABLES;

publicstaticconstBINARY:

String=URLLoaderDataFormat.BINARY;

publicstaticconstTEXT:

String=URLLoaderDataFormat.TEXT;

publicfunctionHttpConnection()

{

}

/*

*para设置发送数据的

*http_url设置发送数据的方式连接地址

*typepostandget

*format格式

*/

publicfunctionsendMessage(para:

Object,http_url:

String,type:

String="post",format:

String="VARIABLES"):

void

{

varrequest:

URLRequest=newURLRequest();

request.data=para;

request.url=http_url;

switch(type)

{

case"post":

request.method=URLRequestMethod.POST;//发送的方式

break;

case"get":

request.method=URLRequestMethod.GET;//发送的方式

break;

}

//发送数据

varloader:

URLLoader=newURLLoader();

switch(format)

{

case"VARIABLES":

loader.dataFormat=URLLoaderDataFormat.VARIABLES;//发送数据的格式

break;

case"BIN":

loader.dataFormat=URLLoaderDataFormat.BINARY;//发送二进制数据的格式

break;

case"TEXT":

loader.dataFormat=URLLoaderDataFormat.TEXT;//发送文本数据的格式

break;

}

loader.addEventListener(Event.COMPLETE,completeHandler);

loader.addEventListener(IOErrorEvent.IO_ERROR,IoHandler);

try

{

loader.load(request);

}

catch(e:

Error)

{

thrownewError(e);

}

}

privatefunctioncompleteHandler(e:

Event):

void

{

//处理返回的结果,如果插入数据库成功那么就可以

varevt:

ConnectionEvent=newConnectionEvent(ConnectionEvent.COMPLETE);

evt.data=URLLoader(e.target);

this.dispatchEvent(evt);

}

privatefunctionIoHandler(e:

Event):

void

{

this.dispatchEvent(newConnectionEvent(ConnectionEvent.WRONG));

}

}

}

//用于与网页通信的类

packageorg.summerT

{

import.URLLoader;

import.URLRequest;

importflash.events.*;

import.URLVariables;

import.URLLoaderDataFormat;

import.*;

publicclassHttpConnectionextendsEventDispatcher

{

publicstaticconstVARIABLES:

String=URLLoaderDataFormat.VARIABLES;

publicstaticconstBINARY:

String=URLLoaderDataFormat.BINARY;

publicstaticconstTEXT:

String=URLLoaderDataFormat.TEXT;

publicfunctionHttpConnection()

{

}

/*

*para设置发送数据的

*http_url设置发送数据的方式连接地址

*typepostandget

*format格式

*/

publicfunctionsendMessage(para:

Object,http_url:

String,type:

String="post",format:

String="VARIABLES"):

void

{

varrequest:

URLRequest=newURLRequest();

request.data=para;

request.url=http_url;

switch(type)

{

case"post":

request.method=URLRequestMethod.POST;//发送的方式

break;

case"get":

request.method=URLRequestMethod.GET;//发送的方式

break;

}

//发送数据

varloader:

URLLoader=newURLLoader();

switch(format)

{

case"VARIABLES":

loader.dataFormat=URLLoaderDataFormat.VARIABLES;//发送数据的格式

break;

case"BIN":

loader.dataFormat=URLLoaderDataFormat.BINARY;//发送二进制数据的格式

break;

case"TEXT":

loader.dataFormat=URLLoaderDataFormat.TEXT;//发送文本数据的格式

break;

}

loader.addEventListener(Event.COMPLETE,completeHandler);

loader.addEventListener(IOErrorEvent.IO_ERROR,IoHandler);

try

{

loader.load(request);

}

catch(e:

Error)

{

thrownewError(e);

}

}

privatefunctioncompleteHandler(e:

Event):

void

{

//处理返回的结果,如果插入数据库成功那么就可以

varevt:

ConnectionEvent=newConnectionEvent(ConnectionEvent.COMPLETE);

evt.data=URLLoader(e.target);

this.dispatchEvent(evt);

}

privatefunctionIoHandler(e:

Event):

void

{

this.dispatchEvent(newConnectionEvent(ConnectionEvent.WRONG));

}

}

}

 

其次:

viewplaincopytoclipboardprint?

//用于通信连接的事件类

packageorg.summerT

{

importflash.events.Event;

import.*;

publicclassConnectionEventextendsEvent

{

publicstaticconstCOMPLETE:

String="complete";

publicvardata:

URLLoader;

publicstaticconstWRONG:

String="wrong";

publicfunctionConnectionEvent(type:

String,bubbles:

Boolean=false,cancelable:

Boolean=false)

{

super(type,false,false);

}

overridepublicfunctionclone():

Event

{

returnnewConnectionEvent(type,false,false);

}

}

}

//用于通信连接的事件类

packageorg.summerT

{

importflash.events.Event;

import.*;

publicclassConnectionEventextendsEvent

{

publicstaticconstCOMPLETE:

String="complete";

publicvardata:

URLLoader;

publicstaticconstWRONG:

String="wrong";

publicfunctionConnectionEvent(type:

String,bubbles:

Boolean=false,cancelable:

Boolean=false)

{

super(type,false,false);

}

overridepublicfunctionclone():

Event

{

returnnewConnectionEvent(type,false,false);

}

}

}

 

viewplaincopytoclipboardprint?

package

{

importflash.display.Sprite;

importflash.events.*;

import.*;

importorg.summerT.HttpConnection;

importorg.summerT.ConnectionEvent;

publicclassMainextendsSprite

{

privatevarsql:

HttpConnection;

privatevarurl:

String=ManagerURL.Address()+"index.jsp";

publicfunctionMain()

{

init();

}

privatefunctioninit():

void

{

sql=newHttpConnection();

varobj:

URLVariables=newURLVariables();

sql.sendMessage(obj,url);

sql.addEventListener(ConnectionEvent.COMPLETE,onComplete);

}

privatefunctiononComplete(event:

ConnectionEvent):

void

{

varsqldata:

*=event.data;

varmsg:

String=sqldata.data.newList.toString();

varlist:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2