Um objeto ResultSet padrão não é atualizável e possui um cursor que se move apenas para frente. Assim, você pode iterar por ele apenas uma vez e apenas da primeira linha até a última linha.
No nível de código, você pode fazer o seguinte
Statement statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet resultSet = statement.executeQuery("select noorder from orders");
resultSet.afterLast();
while (resultSet.previous()) {
String productCode = resultSet.getString("col_one");
String productName = resultSet.getString("col_two");
}
connection.close();