原来真的可以这样!能将jdbc  *.class --->*.java  !!!!!

解决方案 »

  1.   

    用一个hashtable就可以了
    我都写过了
      

  2.   

    dynku , 能否贴出来?  可否share ?
      

  3.   

    dynku , 能否贴出来?  可否share ? 
      

  4.   

    实话实说:
    题目太大了.
    并不是重写ResultSet,说对ResultSet如何使用要恰当的多.
      

  5.   

    你是不是在ejb传输ResultSet的时候出问题啦!ResulstSet不支持序列化!
      

  6.   

    有没有人试过用xml格式来解决这种不能序列化的问题?可不可行?
      

  7.   

    我今天看了看代码,好像是biti_9512207(波波斯基) 所说的东西
    不过现在用jdbc2.0后就没有用了/*---------------------------------------
      Name:        数据库选取类
      Desinger:    Dynku
      Create:      2000/11/22
      Last Modify: 2000/11/22
    -----------------------------------------*/package dysql;import java.sql.*;
    import java.util.*;public class SQLSelect
    {
      Hashtable Records[];
      int columns=0;
      int current=0;
      int max=0;  Connection c;
      String sql;
      ResultSet rs;
      Types type;
    //构造方法一
      public SQLSelect(Connection c,String sql)
      {
        int index=0;    this.c =c;
        this.sql =sql;    try
        {
          Statement dispStmt = this.c.createStatement ();
          rs =dispStmt.executeQuery (this.sql);      this.columns =rs.getMetaData ().getColumnCount ();
          Records=new Hashtable[this.columns];
          String zdz;
          int j;
          while(rs.next())
          {
            index++;
            for(int i=0;i<columns;i++)
            {
              if(index==1)
              {
                Records[i]=new Hashtable();
              }          j=rs.getMetaData ().getColumnType(i+1);
              if(j==type.CHAR||j==type.VARCHAR)
              {
                zdz=new String(rs.getBytes(i+1),"gb2312");
              }
              else
              {
                zdz=rs.getString (i+1);
              }          Records[i].put (new Integer(index),zdz);
            }
          }
          max=index;
        }
        catch(Exception e)
        {
          e.printStackTrace();
          max=-1;
        }
      }
    //构造方法二
      public SQLSelect(ResultSet rs)
      {
        int index=0;    this.rs =rs;    try
        {
          this.columns =rs.getMetaData ().getColumnCount ();
          Records=new Hashtable[this.columns];
          String zdz;
          int j;
          while(rs.next())
          {
            index++;
            for(int i=0;i<columns;i++)
            {
              if(index==1)
              {
                Records[i]=new Hashtable();
              }
              j=rs.getMetaData ().getColumnType(i+1);
              if(j==type.CHAR||j==type.VARCHAR)
              {
                zdz=new String(rs.getBytes(i+1),"gb2312");
              }
              else
              {
                zdz=rs.getString (i+1);
              }          Records[i].put (new Integer(index),zdz);
            }
          }
          max=index;
        }
        catch(Exception e)
        {
          max=-1;
        }
      }
    // 取下一条数据
      public void next()
      {
        if (current == max)
        {
          return;
        }
        current++;
      }
    //取下n条数据
      public void next(int n)
      {
        if((current+n)>max)
        {
          return;
        }
        current=current+n;
      }//取上一条数据
      public void previous()
      {
        if (current<2)
        {
          return;
        }
        current--;
      }//取上n条结果
      public void previous(int n)
      {
        if ((current-n)<1)
        {
          return;
        }
        current=current-n;
      }//到第一个结果
      public void first()
      {
        this.current =1;
      }
    //到最后的结果
      public void last()
      {
        this.current =max;
      }
    //获取当前行
      public int getRow()
      {
        return this.current;
      }
    //设置当前行
      public void setRow(int row)
      {
        if(row<1||row>max)
        {
          return;
        }
        this.current =row;
      }
    //取数据
      public String getItem(int row,int column)
      {
        if(row<1||row>max)
        {
          return "";
        }
        if(column<1||column>this.columns)
        {
          return "";
        }
        return (String)Records[column-1].get(new Integer(row));
      }
    //获得记录总行数
      public int rowCount()
      {
        return this.max ;
      }
    //获得记录总列数
      public int columnCount()
      {
        return this.columns;
      }
    }