Standardadfærden for MySQL Connector/J er at indlæse hele indholdet af ResultSet
ind i hukommelsen, så snart .executeQuery
Hedder. Så selvom vores ResultSet
er TYPE_FORWARD_ONLY
MySQL JDBC-udviklerne besluttede tilsyneladende at være "pæne" og tillade os at bruge .first
, .absolute
osv. i det tilfælde (fordi hele ResultSet
er i hukommelsen og er let tilgængelig), selvom JDBC-specifikationen siger
Bemærk dog, at hvis hele ResultSet
er ikke garanteret i hukommelsen, hvis vi f.eks. bruger st.setFetchSize(Integer.MIN_VALUE)
for at "streame" ResultSet
mens vi ruller gennem det, så vil MySQL Connector/J ikke lade os bruge andet end .next
eller vi får
com.mysql.jdbc.OperationNotSupportedException: Operation not supported for streaming result sets