日期:2014-05-16  浏览次数:20449 次

flex连接数据库总结

flex连接数据库总结
2010年01月11日
  首先,做一点说明。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就是方便啊 ^_^)。
  3.安装了SQLServer数据库。
  4.安装了JRUN或者tomcat或其它的J2EE容器,因为发布的时候我们的程序要运行在J2EE平台上。
  5.安装了JDK。
  第一步:创建数据库
  这里我们有一个公告表,表名为Bulletin。结构如下:
  字段名称           字段类型             说明
  ID               自动编号           自动编号
  title           Nvarchar(100)     题目
  date             datatime         日期
  author         Nvarchar(20)       作者
  content         ntext                 内容
  在数据库中创建这个表。保存之后进入下一步。
  第二步:在JAVA中编写获取公告的代码
  首先,我们要创建一个公告类来专门保存获取的公告信息,代码如下。
  NoticeInfo.java
  package 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 NoticeInfo[noticeList.size()];
  for(int i=0;iFlex中会变成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){
  try{
  Class.forName(DRIVER);
  }catch(ClassNotFoundException e){
  e.printStackTrace();
  }
  try{
  conn = DriverManager.getConnection(CONN_STR_PRE + HOST_NAME + DATABASE_