執行語句時會發生什麼?它是否將所有行都檢索到內存中?哪些行存儲在Resultset
中,以及如何將它們提取到java程序中?Resultset中的行存儲位置
更新
在調用resultSet.next();
是否進入數據庫中取一singleRow回來Java端和顯示呢?和ResultSet
已有cursor
是否與數據庫cursor
類似?
執行語句時會發生什麼?它是否將所有行都檢索到內存中?哪些行存儲在Resultset
中,以及如何將它們提取到java程序中?Resultset中的行存儲位置
在調用resultSet.next();
是否進入數據庫中取一singleRow回來Java端和顯示呢?和ResultSet
已有cursor
是否與數據庫cursor
類似?
一個常見的誤解是,ResultSet必須是容納查詢中所有行的某種容器,以便人們嘗試將它傳遞給應用程序,並且驚訝於在數據庫連接用於創建時它變爲無效它關閉。 ResultSet更像是一個數據庫遊標,它是用來從數據庫中取回行的東西。 ResultSet具有獲取大小,它向驅動程序建議一次可以從服務器獲取多少行,以便它可以檢索塊中的行並在需要時緩衝它們。
這是司機的具體情況。例如。 Postgres JDBC默認將所有行加載到內存中,Oracle使用服務器端的遊標並僅提取部分行。
所以這意味着它的具體驅動程序 – eatSleepCode