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;
    }
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 ; }
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