public void setPageSize(int pageSize) throws SQLException { 
    if (rs == null) { 
      throw new SQLException("ResultSet is null."); 
    } 
    this.pageSize = pageSize; 
    if (getRowsCount() % pageSize > 0) { 
      pageCount = getRowsCount() / pageSize + 1; 
    } 
    else { 
      pageCount = getRowsCount() / pageSize; 
    } 
  } 
  public int getPageSize() { 
    return pageSize; 
  } 
  public int getPageCount() { 
    return pageCount; 
  } 
  public void setAbsolutePage(int page) throws SQLException { 
    if (rs == null) { 
      throw new SQLException("ResultSet is null."); 
    } 
    int positon = (page - 1) * getPageSize(); 
    if (positon > 0) { 
      rs.absolute(positon); 
    } 
    else { 
      rs.beforeFirst(); 
    } 
  } 
  public String[] getColumnNames() throws SQLException { 
    if (rsmd == null) { 
      throw new SQLException("ResultSet is null."); 
    } 
    String[] columnNames = new String[getColumnCount()]; 
    for (int i = 1; i <= columnNames.length; i++) { 
      columnNames[i - 1] = rsmd.getColumnName(i); 
    } 
    return columnNames; 
  } 
  

解决方案 »

  1.   

    protected Object getField(int column, boolean convertToString, 
                                int formatDate) throws SQLException { 
        if (rs == null || rsmd == null) { 
          throw new SQLException("ResultSet is null."); 
        } 
        switch (rsmd.getColumnType(column)) { 
          case Types.BIGINT: 
            if (convertToString) { 
              return String.valueOf(rs.getLong(column)); 
            } 
            else { 
              return new Long(rs.getLong(column)); 
            } 
          case Types.BINARY: 
            if (convertToString) { 
              return Byte.toString(rs.getByte(column)); 
            } 
            else { 
              return new Byte(rs.getByte(column)); 
            } 
          case Types.BIT: 
            if (convertToString) { 
              return String.valueOf(rs.getBoolean(column)); 
            } 
            else { 
              return new Boolean(rs.getBoolean(column)); 
            } 
          case Types.CHAR: 
            String sTempa = rs.getString(column); 
            if (sTempa == null) { 
              return new String(""); 
            } 
            else { 
              return sTempa; 
            } 
          case Types.DATE: 
            if (convertToString) { 
              if (formatDate == 1) { 
                java.sql.Date sTemp = rs.getDate(column); 
                if (sTemp != null) { 
                  return (new SimpleDateFormat("yyyy-MM-dd", Locale.US)) 
                      .format(sTemp); 
                } 
                else { 
                  return new String(""); 
                } 
              } 
              else { 
                java.sql.Date sTemp = rs.getDate(column); 
                if (sTemp != null) { 
                  return sTemp.toString(); 
                } 
                else { 
                  return new String(""); 
                } 
              } 
            } 
            else { 
              return rs.getDate(column); 
            } 
          case Types.DECIMAL: 
            if (convertToString) { 
              java.math.BigDecimal sTemp = rs.getBigDecimal(column); 
              if (sTemp != null) { 
                return sTemp.toString(); 
              } 
              else { 
                return new String(""); 
              } 
            } 
            else { 
              return rs.getBigDecimal(column); 
            } 
          case Types.DOUBLE: 
            if (convertToString) { 
              return String.valueOf(rs.getDouble(column)); 
            } 
            else { 
              return new Double(rs.getDouble(column)); 
            } 
          case Types.FLOAT: 
            if (convertToString) { 
              return String.valueOf(rs.getDouble(column)); 
            } 
            else { 
              return new Float(rs.getDouble(column)); 
            } 
          case Types.INTEGER: 
            if (convertToString) { 
              return String.valueOf(rs.getInt(column)); 
            } 
            else { 
              return new Integer(rs.getInt(column)); 
            } 
          case Types.LONGVARBINARY: 
            if (convertToString) { 
              java.io.InputStream sTemp = rs.getBinaryStream(column); 
              if (sTemp != null) { 
                return sTemp.toString(); 
              } 
              else { 
                return new String(""); 
              } 
            } 
            else { 
              return rs.getBinaryStream(column); 
            } 
          case Types.LONGVARCHAR: 
            try { 
              String sTemp = rs.getString(column); 
              if (sTemp != null) { 
                return sTemp.toString(); 
              } 
              else { 
                return new String(""); 
              } 
            } 
            catch (SQLException ex) { 
              if (ex.getErrorCode() == 0) { 
                return new String(""); 
              } 
              else { 
                throw ex; 
              } 
            } 
            case Types.NULL: 
              if (convertToString) { 
                return new String(""); 
              } 
              else { 
                return null; 
              } 
          case Types.NUMERIC: 
            if (convertToString) { 
              java.math.BigDecimal sTemp1 = rs.getBigDecimal(column); 
              if (sTemp1 != null) { 
                return sTemp1.toString(); 
              } 
              else { 
                return new String(""); 
              } 
            } 
            else { 
              return rs.getBigDecimal(column); 
            } 
          case Types.REAL: 
            if (convertToString) { 
              return String.valueOf(rs.getFloat(column)); 
            } 
            else { 
              return new Float(rs.getFloat(column)); 
            } 
          case Types.SMALLINT: 
            if (convertToString) { 
              return String.valueOf(rs.getShort(column)); 
            } 
            else { 
              return new Short(rs.getShort(column)); 
            } 
          case Types.TIME: 
            if (convertToString) { 
              java.sql.Time sTemp2 = rs.getTime(column); 
              if (sTemp2 != null) { 
                return sTemp2.toString(); 
              } 
              else { 
                return new String(""); 
              } 
            } 
            else { 
              return rs.getTime(column); 
            } 
          case Types.TIMESTAMP: 
            if (convertToString) { 
              if (formatDate == 1) { 
                java.sql.Timestamp sTemp3 = rs.getTimestamp(column); 
                if (sTemp3 != null) { 
                  return (new SimpleDateFormat("yyyy-MM-dd", Locale.US)) 
                      .format(sTemp3); 
                } 
                else { 
                  return new String(""); 
                } 
              } 
              else { 
                java.sql.Timestamp sTemp3 = rs.getTimestamp(column); 
                if (sTemp3 != null) { 
                  return sTemp3.toString(); 
                } 
                else { 
                  return new String(""); 
                } 
              } 
            } 
            else { 
              return rs.getTimestamp(column); 
            } 
          case Types.TINYINT: 
            if (convertToString) { 
              return String.valueOf(rs.getByte(column)); 
            } 
            else { 
              return new Byte(rs.getByte(column)); 
            } 
          case Types.VARBINARY: 
            if (convertToString) { 
              return (rs.getBytes(column)).toString(); 
            } 
            else { 
              return rs.getBytes(column); 
            } 
          case Types.VARCHAR: 
            String sTemp5 = rs.getString(column); 
            if (sTemp5 != null) { 
              return sTemp5.toString(); 
            } 
            else { 
              return new String(""); 
            } 
          case -9: 
            String sTemp6 = rs.getString(column); 
            if (sTemp6 != null) { 
              return sTemp6.toString(); 
            } 
            else { 
              return new String(""); 
            } 
          default: 
            if (convertToString) { 
              java.lang.Object sTemp7 = rs.getObject(column); 
              if (sTemp7 != null) { 
                return sTemp7.toString(); 
              } 
              else { 
                return new String(""); 
              } 
            } 
            else { 
              return rs.getObject(column); 
            } 
        } 
      } 
      
      

  2.   

    public Object getField(int column) throws SQLException { 
        return getField(column, false, 0); 
      } 
      public Object getField(String fieldName) throws SQLException { 
        return getField(rs.findColumn(fieldName), false, 0); 
      } 
      public String getFieldString(int column) throws SQLException { 
        return (String) getField(column, true, 0); 
      } 
      public String getFieldString1(int column) throws SQLException { 
        return (String) getField(column, true, 1); 
      } 
      public String getFieldString(String fieldName) throws SQLException { 
        return (String) getField(rs.findColumn(fieldName), true, 0); 
      } 
      public String getFieldString1(String fieldName) throws SQLException { 
        return (String) getField(rs.findColumn(fieldName), true, 1); 
      } 
      public boolean nextRow() throws SQLException { 
        if (rs == null) { 
          throw new SQLException("ResultSet is null."); 
        } 
        return rs.next(); 
      } 
      public void firstRow() throws SQLException { 
        if (rs == null) { 
          throw new SQLException("ResultSet is null."); 
        } 
        rs.first(); 
      } 
      public void lastRow() throws SQLException { 
        if (rs == null) { 
          throw new SQLException("ResultSet is null."); 
        } 
        rs.last(); 
      } 
      public boolean isLastRow() throws SQLException { 
        if (rs == null) { 
          throw new SQLException("ResultSet is null."); 
        } 
        return rs.isLast(); 
      } 
      public void openDB() throws SQLException { 
       
       if (conn != null && !conn.isClosed()) { 
             throw new SQLException("The connection has been established already."); 
           } 
           clearResult(); 
           try { 
             Context initCtx = new InitialContext(); 
             Context envCtx = (Context)initCtx.lookup("java:comp/env"); 
             DataSource ds = (DataSource)envCtx.lookup("jdbc/panama"); 
             conn = ds.getConnection(); 
             if (conn == null) { 
               throw new SQLException("get db connection faile1"); 
             } 
           } 
           catch (Exception ex) { 
             System.out.println("11"+ex); 
           } 
      public void setConnectionSwitch(String on_off) throws SQLException { 
        try { 
          if (on_off.equalsIgnoreCase("ON")) { 
            openDB(); 
          } 
          else if (on_off.equalsIgnoreCase("OFF")) { 
            closeDB(); 
          } 
        } 
        catch (SQLException ex) { 
          throw new SQLException(ex.toString()); 
        } 
      } 
      public void setDriverName(String drvName) { 
        driverName = drvName; 
      } 
      public void setJdbcURL(String url) { 
        jdbcURL = url; 
      } 
      public void setUserName(String uname) { 
        username = uname; 
      } 
      public void setPassword(String passwd) { 
        password = passwd; 
      } 
      public void setRows(int rows) throws SQLException { 
        if (rs == null) { 
          throw new SQLException("ResultSet is null."); 
        } 
        rs.absolute(rows); 
      } 
      public String getLargeTextField(String fieldName) throws SQLException{ 
      Reader bodyReader = null; 
         String value = null; 
         bodyReader = rs.getCharacterStream(fieldName); 
         if (bodyReader != null) 
           try { 
             char buf[] = new char[256]; 
             StringWriter out = new StringWriter(256); 
             int len; 
             while ( (len = bodyReader.read(buf)) >= 0) 
               out.write(buf, 0, len); 
             value = out.toString(); 
             out.close(); 
           } 
           catch (Exception e) { 
             throw new SQLException("Failed to load text field"); 
           } 
         finally { 
           try { 
             bodyReader.close(); 
           } 
           catch (Exception e) {} 
         } 
         return value; 

    }
      

  3.   

    你这是要做什么?没看懂!!
    Spring已经有很好的封装,JPA也很好。