Perilaku default untuk MySQL Connector/J adalah memuat seluruh konten ResultSet
ke dalam memori segera setelah .executeQuery
disebut. Jadi, meskipun ResultSet
our kami adalah TYPE_FORWARD_ONLY
pengembang MySQL JDBC tampaknya memutuskan untuk menjadi "baik" dan mengizinkan kami menggunakan .first
, .absolute
, dll. dalam kasus itu (karena seluruh ResultSet
ada dalam memori dan tersedia), meskipun spesifikasi JDBC mengatakan
Namun, perhatikan bahwa jika seluruh ResultSet
tidak dijamin berada di memori, misalnya jika kita menggunakan st.setFetchSize(Integer.MIN_VALUE)
untuk "mengalirkan" ResultSet
saat kami menggulirnya, MySQL Connector/J tidak akan membiarkan kami menggunakan apa pun selain .next
atau kita akan mendapatkan
com.mysql.jdbc.OperationNotSupportedException: Operation not supported for streaming result sets