Standardbeteendet för MySQL Connector/J är att ladda hela innehållet i ResultSet i minnet så snart som .executeQuery kallas. Så även om vårt ResultSet är TYPE_FORWARD_ONLY MySQL JDBC-utvecklarna bestämde sig tydligen för att vara "trevliga" och tillåta oss att använda .first , .absolute , etc. i så fall (eftersom hela ResultSet finns i minnet och lätt tillgänglig), även om JDBC-specifikationen säger
Observera dock att om hela ResultSet garanteras inte att finnas i minnet, t.ex. om vi använder st.setFetchSize(Integer.MIN_VALUE) för att "strömma" ResultSet när vi bläddrar igenom den låter MySQL Connector/J oss inte använda något annat än .next eller så får vi
com.mysql.jdbc.OperationNotSupportedException: Operation not supported for streaming result sets