code: public boolean previous() throws SQLException {
          if (queryResult.getResultSetType() != ResultSetType.SELECT) {
              return false;
          }
          final SelectQueryResult sqr = (SelectQueryResult) queryResult;
          if (sqr.getRows() >= 0) {
              sqr.moveRowPointerTo(sqr.getRowPointer() - 1);
              return true;
          }
          return false;
      }
docs: Moves the cursor to the previous row in this <code>ResultSet</code> object.
  <p/>
  When a call to the <code>previous</code> method returns <code>false</code>, the cursor is positioned before the
  first row.  Any invocation of a <code>ResultSet</code> method which requires a current row will result in a
  <code>SQLException</code> being thrown.
  <p/>
  If an input stream is open for the current row, a call to the method <code>previous</code> will implicitly close
  it.  A <code>ResultSet</code> object's warning change is cleared when a new row is read.
  <p/>
  
  @return <code>true</code> if the cursor is now positioned on a valid row; <code>false</code> if the cursor is
  positioned before the first row
  @throws java.sql.SQLException if a database access error occurs; this method is called on a closed result set or
  the result set type is <code>TYPE_FORWARD_ONLY</code>
  @throws java.sql.SQLFeatureNotSupportedException
  if the JDBC driver does not support this method
  @since 1.2