Domyślnym zachowaniem MySQL Connector/J jest załadowanie całej zawartości ResultSet do pamięci, gdy tylko .executeQuery jest nazywany. Tak więc, mimo że nasz ResultSet to TYPE_FORWARD_ONLY programiści MySQL JDBC najwyraźniej postanowili być "mili" i pozwolić nam na użycie .first , .absolute , itp. w tym przypadku (ponieważ cały ResultSet jest w pamięci i łatwo dostępny), mimo że specyfikacja JDBC mówi
Pamiętaj jednak, że jeśli cały ResultSet nie ma gwarancji, że będzie w pamięci, np. jeśli użyjemy st.setFetchSize(Integer.MIN_VALUE) do "przesyłania strumieniowego" ResultSet gdy je przewijamy, MySQL Connector/J nie pozwoli nam używać niczego poza .next albo dostaniemy
com.mysql.jdbc.OperationNotSupportedException: Operation not supported for streaming result sets