Ich habe diese Java-Code, der tut diesResultSet-Methode "Last" ist dies ein optimaler Weg?
ResulSet rs = stmt.executeQuery();
while (rs.next()) {
.... //do regular processing
if (rs.last()) {
//do last record processing
}
}
Ich habe diese Java-Code, der tut diesResultSet-Methode "Last" ist dies ein optimaler Weg?
ResulSet rs = stmt.executeQuery();
while (rs.next()) {
.... //do regular processing
if (rs.last()) {
//do last record processing
}
}
Sie verwenden sollten: isLast() statt.
Warnung, nicht alle JDCB-Treiber unterstützen diese Funktion. Natürlich müssen Sie es bei Ihrer Installation überprüfen.
Die meisten großen DB funktionieren gut.
Der feste Code sollte so aussehen.
if(rs.isLast()) {
// do last record processing
}
Persönlich würde ich die Variablen deklariert, die aus der Abfrage außerhalb der Schleife abgerufen werden, und führen Sie dann die „letzte Satzverarbeitung“ nach der Schleife.
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);
No: rs.last() wird tatsächlich den Cursor in die letzte Zeile in der Ergebnismenge senden, die auf jeden Fall nicht das, was Sie tun möchten. Sie würden nur maximal 2 Zeilen (erste und letzte) von der Ergebnismenge verarbeiten.