ArrayList al = new ArrayList();
al.add("0");
al.add("1");ArrayList xx = new ArrayList();
xx.add(al);

解决方案 »

  1.   

    用vector 可以的!
    给你我自己写的一个数据库操作类的getData()模块!/**获取查询数据库数据,返回一个二维数组*/ //2004/02/26 最后修改!
      public String [][] getData()
      {
        int columns; //数据库总列数
        int rsRow=-1; //数据库总行数
        int toi=-1;
        String dbdata[][]=null; //存取数据库数据的数组
        Vector dbx=new Vector();  //建立动组数组来存放数据库的数据
        pub to = new pub();   //公用函数,此处用做转码
        if (this.pagingFlag) { //是否应用分页!
          int tmp = this.pageSize;
            if (tmp > this.allRsCount) {
              tmp = this.allRsCount;
            }
           rsRow = tmp;
           int toCount;
           toCount = this.page * this.pageSize;
           if ( (toCount - this.allRsCount) > 0) {
             rsRow = this.pageSize - (toCount - this.allRsCount);
           }
           toi = (this.page - 1) * this.pageSize;    }
        if (rsRow==0)   return null;      //执行查询
          this.executeme(this.sql);
          try {
            ResultSetMetaData rsmd = rs.getMetaData();
            columns = rsmd.getColumnCount(); //获得数据库总列数
            //System.out.println("列为:"+columns);
    ////////////////////////////////////////////////////
            if (this.pagingFlag)  //如果应用分页
            {
              dbdata = new String[columns][rsRow];
              if (toi == 0) {
                rs.beforeFirst(); //指向记录集文件头位置
              }
              else
              {
                rs.absolute(toi); //否则指向适当的位置
              }          for (int i = 0; i < rsRow; i++)
              {
                if (rs.next())
                {
                  for (int l = 1; l <= columns; l++)
                  {
                    //将从数据库所查询得出的数据存入dbdata二维数组中
                    dbdata[l - 1][i] = to.togbStr(rs.getString(l));
                  }
                }
                else
                {
                  break;
                }
              }
            }
    ////////////////////////////////////////////////////
            else
            {  //不用分页
              if (!rs.next()) {
                return null;
              }
              rs.beforeFirst();
              while(rs.next())  //循环将数据库的数据加入dbx 对象中
              {
                String tmpdata []=new String [columns];
                for(int i=1;i<=columns;i++)
                {
                  tmpdata[i-1] = to.togbStr(rs.getString(i));
                  
                }
                dbx.addElement(tmpdata);
              }
             
              dbdata= new String[columns][dbx.size()];
              for(int i=0;i<dbx.size();i++)
              {
                for(int j=0;j<columns;j++)
                {
                  String[]tmp =(String[])dbx.elementAt(i);
                  
                  dbdata[j][i]=tmp[j];
                 }
              }
            dbx.removeAllElements();
            dbx=null;
            }     }
        catch (Exception ex) {
          this.close();
          System.out.println("yearbook:dba:getData():数据库获取数据操作失败!");
        }
        //如果正在应用分页则归位标志!
       if (this.pagingFlag) { this.pagingFlag = false; }
        return dbdata;
      }
      

  2.   

    我认为在你分页时,要是刷新本页的话,那么javabean不就如同重新定义了。
    javabean中的值就没有了。
      

  3.   

    前端jsp调用只需要  String dbdata[][] = db.getData();
      if (dbdata==null) 
      {
           out.print("没找到任何记录");
           return ;
      }  for(int i=0;i<dbdata[0].length;i++)
      {
         out.print(dbdata[0][i]);
         out.print(dbdata[1][i]);
         // ......more
      }
      
      

  4.   

    to :smallcat96(smallcat) 
    那只是我模块的一部分。完整的类给你看看。
    帮我看看有没有什么写的不好的地方!
      

  5.   

    package yearbook;
    import java.sql.*;
    import javax.naming.*;
    import java.util.*;
    /**
     * <p>功能描述: 数据库基本操作类</p>
     * <p>公司:金报兴图</p>
     * <p>版权:2004<p>
     * <p>创建日期:2004/02/20<p>
     * <p>修改日期:2004/02/26<p>
     * @author 王亮
     * @version 1.1
     */public class dba {
      Connection conn = null;
      Statement stmt = null ;
      ResultSet rs = null;  int pageSize; //每页显示的记录数
      int allRsCount; //记录总数
      int allPageCount; //总页数
      int page = 1; //转到的显示页码
      int counti; //循环分页显示记录时,要使用的全局记数器变量
      boolean pagingFlag=false; //是否分页的标记 默认为不分页
      String sql;  //sql数据操作,临时存放
      public dba() {
      }  /**打开数据库连接*/
      public void open() {
        try {      Context initCtx = new InitialContext();
          if (initCtx==null) throw new Exception("不能获取Context!");
          Context ctx = (Context) initCtx.lookup("java:comp/env");
          //获取连接池对象
          Object obj = (Object) ctx.lookup("jdbc/csgd");
          //类型转换
          javax.sql.DataSource ds = (javax.sql.DataSource) obj;
           conn = ds.getConnection();
        }
        catch (Exception ex) {
          this.close();
          System.out.println("yearbook:dba:open():数据库打开失败!");
        }
      }  /**数据库查询(特殊用接口)*/
      public ResultSet executeQueryA(String sql)
      {
        try {
          stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_READ_ONLY);
          rs = stmt.executeQuery(sql);     // System.out.println("测试A:" + sql);
        }
        catch (Exception e) {
          this.close();
          System.out.println("yearbook:dba:executeQueryA():数据库查询失败!");
          System.out.println("sql语句为:"+sql);
        }
        return rs;
      }
      /**数据库的 查询 操作 */
      public void executeQuery(String sql)
      {
          this.sql=sql;
      }  /**真实数据库查询动作(本类内部自用函数))*/
      void executeme(String sql)
      {
        try
        {
          stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_READ_ONLY);
          rs = stmt.executeQuery(sql);
          //System.out.println("测试:"+sql);
        }catch(Exception e)
        {
          this.close();
          System.out.println("yearbook:dba:executeme():数据库查询失败!");
          System.out.println("sql语句为:"+sql);
        }
      }
      /**返回数据库查询后的总记录数*/   //2004/02/26 最后修改!
       public int getAllcount(String sql)
      {
        int rstmp=0;
         ResultSet rsaa = this.executeQueryA(sql);
         try
         {
           if (rsaa.next())
           {
             rsaa.last();
              rstmp=rsaa.getRow(); //获取记录总数
              if (rsaa!=null)
              {
                rsaa.close();
                rsaa = null;
              }
             return rstmp;
           }else
           {
             return 0;
           }
         }catch(Exception e)
         {
            this.close();
            System.out.println("yearbook:dba:getAllcount():获取数据库总记录数出错!");
            System.out.println("sql语句为:"+sql);
         }finally
         {
           try
           {
             if (rsaa != null) {
               rsaa.close();
               rsaa = null;
             }
           }catch(Exception e){}
         }
         return rstmp;
        /*final String sign = " FROM ";
        int x = sql.toUpperCase().indexOf(sign);
        String sqltmp = "SELECT COUNT(*)" +sql.substring(x);
        this.executeme(sqltmp);
        int allcount=-1;
        try
        {
          if (rs.next())
          allcount = Integer.parseInt(rs.getString(1));
        }catch(Exception e){
          this.close();
          System.out.println("yearbook:dba:getAllcount():获取记录总数失败");
          System.out.println("sql语句为:"+sql);
        }
        return allcount;*/  }
      /**获取查询数据库数据,返回一个二维数组*/ //2004/02/26 最后修改!
      public String [][] getData()
      {
        int columns; //数据库总列数
        int rsRow=-1; //数据库总行数
        int toi=-1;
        String dbdata[][]=null; //存取数据库数据的数组
        Vector dbx=new Vector();  //建立动组数组来存放数据库的数据
        pub to = new pub();   //公用函数,此处用做转码
        if (this.pagingFlag) { //是否应用分页!
          int tmp = this.pageSize;
            if (tmp > this.allRsCount) {
              tmp = this.allRsCount;
            }
           rsRow = tmp;
           int toCount;
           toCount = this.page * this.pageSize;
           if ( (toCount - this.allRsCount) > 0) {
             rsRow = this.pageSize - (toCount - this.allRsCount);
           }
           toi = (this.page - 1) * this.pageSize;    }
        if (rsRow==0)   return null;      //执行查询
          this.executeme(this.sql);
          try {
            ResultSetMetaData rsmd = rs.getMetaData();
            columns = rsmd.getColumnCount(); //获得数据库总列数
            //System.out.println("列为:"+columns);
    ////////////////////////////////////////////////////
            if (this.pagingFlag)  //如果应用分页
            {
              dbdata = new String[columns][rsRow];
              if (toi == 0) {
                rs.beforeFirst(); //指向记录集文件头位置
              }
              else
              {
                rs.absolute(toi); //否则指向适当的位置
              }          for (int i = 0; i < rsRow; i++)
              {
                if (rs.next())
                {
                  for (int l = 1; l <= columns; l++)
                  {
                    //将从数据库所查询得出的数据存入dbdata二维数组中
                    dbdata[l - 1][i] = to.togbStr(rs.getString(l));
                  }
                }
                else
                {
                  break;
                }
              }
            }
    ////////////////////////////////////////////////////
            else
            {  //不用分页
              if (!rs.next()) {
                return null;
              }
              rs.beforeFirst();
              while(rs.next())  //循环将数据库的数据加入dbx 对象中
              {
                String tmpdata []=new String [columns];
                for(int i=1;i<=columns;i++)
                {
                  tmpdata[i-1] = to.togbStr(rs.getString(i));
                  //System.out.println("tmpdata["+(i-1)+"]: "+tmpdata[i-1]);
                }
                dbx.addElement(tmpdata);
              }
             // String[]tmp123 =(String[])dbx.elementAt(1);
             //    System.out.println(tmp123[1]);
              dbdata= new String[columns][dbx.size()];
              for(int i=0;i<dbx.size();i++)
              {
                for(int j=0;j<columns;j++)
                {
                  String[]tmp =(String[])dbx.elementAt(i);
                  //System.out.println("tmp["+tmp.length+"]["+tmp[0].length+"]");
                  dbdata[j][i]=tmp[j];
                 // System.out.println("tmp["+(j)+"][0]"+tmp[j]);
                }
              }
            dbx.removeAllElements();
            dbx=null;
            }     }
        catch (Exception ex) {
          this.close();
          System.out.println("yearbook:dba:getData():数据库获取数据操作失败!");
        }
        //如果正在应用分页则归位标志!
       if (this.pagingFlag) { this.pagingFlag = false; }
        return dbdata;
      }