一、
 
  首先我们先在 phpMyAdmin里建立一个数据库"flexphp",然后建立一个表格"flexs",表格结构为"id,name,phone,adress"这四个,设置id为主KEY。在这方面,我就不多说了,估计大家都知道。
二、

   

 
  重头戏来了,建立一个Flex Project,在向导里,第一步,我们命名这个项目叫"TestPhp"。注意,注意,在第二步的时候,要像我截图那么设置。在Server type里选择PHP
三、


     

    选择完PHP,下面就出现选项,这里很重要。一定要注意的,我的PHP是是WAMP5构建的,放在D盘下,那么,"Web root"就是"D:\wamp\www".接着在下面填上:localhost/,而下面的那个"Validata Configuration"可以确认是否生效,然后点击"Next"
四、

 

    在这里,你可以按照默认设置直接NEXT,但是如果你要重新在WWW设置文件名,或者已经建立了文件,可以把Use default location勾选去掉,然后选择你要的文件。

五、
 
 

  这里要注意的是,那个Output folder URL,你可以自己设置,我这里就默认了。千万不要设置错误。还有要说的是,在这一步,你可以用RSL来减少等下要生成SWF的体积,具体怎么做,我在上一篇文章里说到了,你可以去这里查看。开始的基本都设置完了,点Finish.
   

六、
   
 
      在生成完文件后,别停下,选择DATA - Create Database Accessor ,进入设置数据库向导。然后会出现一个红叉,没关系,点右边的"new",在向导的第二页,根据你的需要来选择。我这里是最后一个MYSQL向导,然后NEXT
七、
 
    Name里随便写个名字,我这里是"phptestdata".其他的不用填写。
八、

   
   


    在这里,需要填写你数据库的名字和密码了,别忘了Test Connection.如果成功,就行,没成功的话,那你要看看你到底哪里设置错误了。然后NEXT,在最后的Summary,你可以查看你所设置的信息。现在就Finish了。


     

    自动回到Data向导,你可以看到红叉没了。Table flexs, KEY id.然后Next.接着....哈哈,就是一马平川的Next FINISH为止。毕竟是基础教程啊,如果你对那些有点啥问题,
可以和我探讨,我这里就偷点懒了。因为里面不外乎是主KEY设置,那些表格要显示,那些不要等等。很简单的。
十、

   
  生成完成后,一看,妈妈眯啊,多了这么多文件。注意哦,那个l才是主文件,而我们建立的那个l没用了。打开l文件,我们先不看里面具体的代码,我们赶快来RUN下,激动啊激动。

十一、
   
 
  感谢上帝、真主。一切都OKFLEX成功的与Data数据连接。在左下方有两个按钮,一个是添加数据,一个是删除数据。右下方呢,是查询,因为我是默认设置ID为主KEY。那么等输入多个数据后,在Search里只能输入ID号来查询,而不是名字或者其他数据。
Flex3通过Servlet连接数据库
本文简单介绍了Flex如何通过servlet连接数据库(Access)。使用的是<mx:HttpService>给后台传递数据的方法。
  本文开发使用的软件:
    Flex3-eclipse plugin
    Tomcat 6.0
    Microsoft access 2003
    Eclipse 3.3
  各个软件的安装和使用这里就不介绍了。
  首先用Access建立一个名字叫做songstable.包含了name,singer,lrc,addURL四个field.具体的可以参考附件中附带的access文件。关于Access部署参考:Java连接access数据库 .
  其次新建一个mxml文件:l。具体代码如下:
 
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="www.adobe/2006/mxml" layout="absolute"
     creationComplete="feedRequest.send()" >
   <mx:HTTPService id="feedRequest"
       url="localhost:8080/flexweb/HelloWorld"
       useProxy="false" />
    <mx:Panel x="10" y="10" width="475" height="400" layout="absolute"
        title="{dgPosts.selectedItem.name}" color="#1C06F6" fontSize="16">
    <mx:DataGrid x="20" y="20" id="dgPosts" width="400" dataProvider="{feedRequest.lastResult.songs.song}" fontFamily="Times New Roman" fontSize="16">
       <mx:columns>
         <mx:DataGridColumn headerText="Name" dataField="name"/>
         <mx:DataGridColumn headerText="Singer" dataField="singer"/>
         <mx:DataGridColumn headerText="URL" dataField="addrURL"/>
       </mx:columns>
    </mx:DataGrid>
    <mx:LinkButton x="20" y="225" label="下载音乐" click="navigateToURL(new URLRequest(dgPosts.selectedItem.addrURL));" fontFamily="Times New Roman" fontSize="20" color="#0B3C0B"/>
    <mx:TextArea x="20" y="175" width="400" text="{dgPosts.selectedItem.lrc}" fontFamily="Times New Roman" fontSize="16"/>
   </mx:Panel>
</mx:Application>
保存文件,编译执行。此刻由于没有部署本地服务器来执行localhost:8080/flexweb/HelloWorld 
所以会出现错误信息,不要紧,我们开始搭建servlet.
servlet的具体代码如下:HelloWorld.java
package test;
import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {
    public static String dbDriver ="sun.jdbc.odbc.JdbcOdbcDriver";
    public String connStr ="jdbc:odbc:songs";
    public ResultSet rs =null;
    public Connection con=null;
    public Statement st=null;
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException{

        response.setContentType("text/xml;charset=utf-8");
        response.setHeader("Cache-Control", "no-cache");
        String content = "";
        String name="";
        String singer="";
        String lrc="";
        String addrURL="";
        try{
        Connection condb = getConnection();
        st = condb.createStatement();
        rs=st.executeQuery("select * from songs");
        while(rs.next()){
            name = rs.getString("name");
            singer = rs.getString("singer");
            lrc = rs.getString("lrc");
            addrURL = rs.getString("url");
            content+="<song><name>"+name+"</name><singer>"+singer+"</singer><lrc>"+
            lrc+"</lrc><addrURL>"+addrURL+"</addrURL></song>";
        }
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }catch( SQLException e1){
            e1.printStackTrace();
        }
        content="<?xml version=\"1.0\" encoding=\"utf-8\"?><songs>"+content;
        content+="</songs>";

        System.out.println(content);
        response.getWriter().write(content);
    }
    public Connection getConnection() throws ClassNotFoundException{
        try{
            Class.forName(flex软件dbDriver);
            System.out.println("Connect to db successfuly!");
            con = DriverManager.getConnection(connStr);
           
        }catch(SQLException e){
            con=null;
            System.err.println(e.getMessage());
        }
        return con;
    }
}
 关于如何利用Tomcat搭建可执行的servlet程序参考:Servlet平台搭建 这里就不介绍了。上面的servlet程序连接access数据库,取出数据后然后生成XML文件,然后在传给Flex应用程序,显示在GUI界面中。截图:
如果部署程序有问题的话,可以留言交流。
首先,做一点说明。Flex是不能直接连接数据库的,这一点大家需要知道,它只能间接地连接数据库。Flex中提供了三种方式:HttpServiceWebService 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 BuilderIDE就是方便啊 ^_^)。
3.安装了SQLServer数据库。
4.安装了JRUN或者tomcat或其它的J2EE容器,因为发布的时候我们的程序要运行在J2EE
平台上。
5.安装了JDK

第一步:创建数据库
这里我们有一个公告表,表名为Bulletin。结构如下:
字段名称           字段类型            说明
ID              自动编号          自动编号
title           Nvarchar(100)    题目
date            datatime         日期
author         Nvarchar(20)      作者
contents        ntext                内容
在数据库中创建这个表。保存之后进入下一步。

第二步:在JAVA中编写获取公告的代码
首先,我们要创建一个公告类来专门保存获取的公告信息,代码如下。
NoticeInfo.java

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。