晕,当然不能直接转化,只能将里面数据读出来以后存入Collection

解决方案 »

  1.   

    关注,看怎么转为 Collection
      

  2.   

    写个循环一条条读出来再加到Collection
      

  3.   

    肯定要一条条读,不过有一个通用的办法,可以不管结果集的结构就读出数据。
    用hashmap 存储一条记录的信息, 字段名,字段值。(字段值要为String才好处理,数据中常用的类型有 number,varchar2,date 都是可以转化成字符串的),循环字段名就可以把一条记录读到hashmap中。在用vector存储若干个hashmap,就可以了。
      

  4.   

    这是我原来写的代码中的一部份
    public Collection 。。

        Vector retVector=new Vector()



          while (rs.next()) {
            //初始化Hash表
            Hashtable ht = new Hashtable();
            //获得数据
            ResultSetMetaData md = rs.getMetaData();//检索此 ResultSet 对象的列的数目、类型和属性.        
            //将ResultSet转化成Hash数据
            for(int i=1;i<=md.getColumnCount();i++){//getColumnCount()返回此 ResultSet 对象中的列的数目。
            //Str=rs.getString(i);        
                //tmpStr=rs.getString(i);
                //数据类型转化
                fieldValueStr=null;            
                String ColumnName =md.getColumnName(i);
                switch (md.getColumnType(i))
                     {
                            case Types.VARCHAR://字符串类型
                                fieldValueStr = rs.getString(i);
                                break;
                            case Types.DATE://日期类型
                                java.sql.Date dtmp = rs.getDate(i);
                                fieldValueStr = dtmp.toString();
                                break;
                            case Types.NUMERIC://浮点数类型
                                 fieldValueStr = rs.getString(i);
                                break;
                            case Types.CLOB://clob
                                CLOB clob = (CLOB)rs.getClob(i);
                                long pos=1;
                                extLog4J.Log4J.debug("clob2:"+clob);                            
                                if(!(clob==null))
                                {
                                    extLog4J.Log4J.debug("clob:"+clob);
                                    try{
                                        fieldValueStr=clob.getSubString(pos,(int)clob.length());
                                    }catch(SQLException Ex){
                                    }
                                }
                                break;
                            default :
                                 fieldValueStr = rs.getString(i);
                                break;
                     }
              if(fieldValueStr==null)
              {
                fieldValueStr="";
              }
              //生成Hash数据
              
              ht.put(((String)ColumnName).toUpperCase(),(String)fieldValueStr);
            }
            //添加数组
            retVector.add(ht);
          }
        }
        catch (SQLException ex) {
          extLog4J.Log4J.error(ex.getStackTrace());
        }
        return retVector;