我有這樣的Java代碼,這是否ResultSet方法「last」是否是最佳方式?
ResulSet rs = stmt.executeQuery();
while (rs.next()) {
.... //do regular processing
if (rs.last()) {
//do last record processing
}
}
我有這樣的Java代碼,這是否ResultSet方法「last」是否是最佳方式?
ResulSet rs = stmt.executeQuery();
while (rs.next()) {
.... //do regular processing
if (rs.last()) {
//do last record processing
}
}
您應該使用:isLast()代替。
請注意,並非所有JDCB驅動程序都支持此功能。顯然你必須檢查你的安裝。
最主要的數據庫工作正常。
固定代碼應該看起來像這樣。
if(rs.isLast()) {
// do last record processing
}
就個人而言,我會宣佈,從外循環查詢檢索到的變量,然後在循環之後做「最後一個記錄處理」。
ResulSet rs = stmt.executeQuery();
long primaryKey;
while (rs.next()) {
primaryKey = rs.getLong(1);
.... //do regular processing
}
// Do last record processing.
System.out.println("last primary key = " + primaryKey);
否:rs.last()實際上會將遊標發送到ResultSet中的最後一行,這絕對不是你想要做的。您只能從結果集中處理至多2行(第一個和最後一個)。