用 JDBC 下達 SQL 查詢指令,取得 ResultSet 之後,有時我們會想先知道合乎查詢條件
的 record 總筆數,再去撈取真正的資料。
原以為透過 getFetchSize() 可取得這個數字,但是 debug 時才發現,原來它傳回的不是
「合乎查詢條件的 record 總筆數」,而是一種類似「record buffer 容量」的數字。
如果真的要取得 result set 的 record 總筆數,可視情況需要採用以下其中各種方法:
1.
ResultSet rs = st.executeQuery("SELECT COUNT(*) from TestTable");
rs.next();
int count = rs.getInt(1); //get total rows;
但要注意兩階段之間資料會不會有異動。
2.
取得 ResultSet 之後,以迴圈累計資料個數:
int count = 0;
while (rs.next()) {
++count;
//…
}
3.
取得 scrollable 的 ResultSet 之後,將游標移到最後一筆資料:
int count;
if (rs.last())
count = rs.getRow();
else
count = 0;
rs.beforeFirst(); // 或 rs.first(); //回到第一個ResultSet
- Jun 26 Tue 2012 10:30
[Java]取得 result set 的 record 總筆數
close
全站熱搜
留言列表