Výchozí chování pro MySQL Connector/J je načíst celý obsah ResultSet
do paměti, jakmile .executeQuery
je nazýván. Tedy, i když naše ResultSet
je TYPE_FORWARD_ONLY
vývojáři MySQL JDBC se zjevně rozhodli být "milí" a dovolili nám používat .first
, .absolute
, atd. v takovém případě (protože celá ResultSet
je v paměti a je snadno dostupný), i když specifikace JDBC říká
Pamatujte však, že pokud je celá ResultSet
není zaručeno, že bude v paměti, např. pokud použijeme st.setFetchSize(Integer.MIN_VALUE)
pro "streamování" ResultSet
když v něm procházíme, MySQL Connector/J nám nedovolí použít nic jiného než .next
nebo dostaneme
com.mysql.jdbc.OperationNotSupportedException: Operation not supported for streaming result sets