从ResultSet里取出数据后,再构造一个对象啊。^@^

解决方案 »

  1.   

    重新构造一个ResultSet或者用一个二维Collection对象来存储这个ResultSet
      

  2.   

    public class BasicDataSourceExample {
        public static void main(String[] args) {
            String uri = "jdbc:postgresql://192.168.2.63/myutf8db?useUnicode=true&characterEncoding=UTF-8";
            String sql = "SELECT * FROM mytable";
            String sql1 = "select * from pg_database";
            DataSource dataSource = setupDataSource(uri);        Connection conn = null;
            Statement stmt = null;
            ResultSet rset = null;        try {
                conn = dataSource.getConnection();
                stmt = conn.createStatement();
                rset = stmt.executeQuery(sql1);
                int numcols = rset.getMetaData().getColumnCount();
                // column names
                for (int i = 1; i <= numcols; i++) {
                    System.out.print("\t"+rset.getMetaData().getColumnName(i));
                }
                System.out.println("\n------------------------------------");            while(rset.next()) {
                    for(int i=1;i<=numcols;i++) {
                        System.out.print("\t" + rset.getString(i));
                    }
                    System.out.println("");
                }
            } catch(SQLException e) {
                e.printStackTrace();
            } finally {
                try { rset.close(); } catch(Exception e) { }
                try { stmt.close(); } catch(Exception e) { }
                try { conn.close(); } catch(Exception e) { }
            }
        }    public static DataSource setupDataSource(String connectURI) {
            BasicDataSource ds = new BasicDataSource();
            ds.setDriverClassName("org.postgresql.Driver");
            ds.setUsername("postgre");
            ds.setPassword("postgre");
            ds.setUrl(connectURI);
            return ds;
        }    public static void printDataSourceStats(DataSource ds) throws SQLException {
            BasicDataSource bds = (BasicDataSource) ds;
            System.out.println("NumActive: " + bds.getNumActive());
            System.out.println("NumIdle: " + bds.getNumIdle());
        }    public static void shutdownDataSource(DataSource ds) throws SQLException {
            BasicDataSource bds = (BasicDataSource) ds;
            bds.close();
        }
    }
      

  3.   

    /**
       * 执行 select sql 查询数据库单个表,得到ArrayList 行对象object是HashMap
       * @param strSql   sql查询语句
       * @return  List
       * @throws SQLException
       */
      public List getTable(String strSql) {
        Connection dbConn = getConn();
        Statement stmt = null;
        ResultSet rs = null;
        List retList = new ArrayList();
        Map myMap = null;
        try {
          stmt = dbConn.createStatement();
          rs = stmt.executeQuery(strSql);
          if (rs == null) {
            return Collections.EMPTY_LIST;
          }
          ResultSetMetaData mtdata = rs.getMetaData();
          int col = mtdata.getColumnCount();
          while (rs.next()) {
            myMap = new HashMap(col);
            for (int i = 1; i <= col; i++) {
              myMap.put(mtdata.getColumnName(i), rs.getString(i));
            }
            retList.add(myMap);
          }
          return retList;
        }
        catch (SQLException e) {
          return Collections.EMPTY_LIST;
        }
        finally {
          dbclose(dbConn, stmt, rs);
        }
      }
      

  4.   

    其实关键两步就是先创建一个Statement,然后执行executequery,创建一个ResultSet,将执行SQL的结果返回给ResultSet即可!