code: public List getDataList(DataSource ds, String key, String sql, int start, int count) throws
       Exception {
     Connection c = null;
     Statement stmt = null;
     ResultSet rs = null;
     List items = new ArrayList(count);
     try {
       c = ds.getConnection();
       stmt = c.createStatement();
  
       DbUtil.testConnection(c);
       if (DbUtil.supportsMaxRows)
         stmt.setMaxRows(count + start + 1);
       rs = stmt.executeQuery(sql);
       if (DbUtil.supportsFetchSize)
         rs.setFetchSize(count);
       if (start >= 0 && rs.absolute(start + 1)) {
  
         do {
           items.add(rs.getString(1));
         }
         while ( (rs.next()) && (--count > 0));
  
       }
  
     } catch (SQLException se) {
       throw new Exception("SQLException: " + se.getMessage());
     } finally {
       if (rs != null)
         rs.close();
       if (stmt != null)
         stmt.close();
       if (c != null)
         c.close();
     }
      return items;
   }
docs: 该方法不能返回hasNext，待完善！