Kennt jemand eine bessere Methode, um die Anzahl der Zeilen in einem Java-Resultset aus einer MySQL-Datenbank zu erhalten? Das zurückgegebene Resultset wird nicht die Gesamtanzahl der Zeilen sein, die von der Datenbank gelesen werden, daher glaube ich nicht, dass ich die COUNT
Aggregatfunktion von SQL verwenden kann.Anzahl der Zeilen in einer Java-Ergebnismenge ermitteln
public static int getResultSetRowCount(ResultSet resultSet) {
int size = 0;
try {
resultSet.last();
size = resultSet.getRow();
resultSet.beforeFirst();
}
catch(Exception ex) {
return 0;
}
return size;
}
Aufruf resultSet.last() das Ergebnis verursacht alle Datensätze auf iterieren tatsächlich über - so ist es eindeutig ineffizient. Außerdem werden alle Daten in den Speicher zwischengespeichert, auch wenn Sie sie noch nicht benötigen. Jeder Grund, warum Sie gesagt haben, dass "das Resultset zurückgegeben wird, ist nicht die Gesamtanzahl der gelesenen Zeilen aus der Datenbank"? – RonK
@RonK: Warum denkst du, wird es überall wiederholen? So etwas konnte ich in der Dokumentation nicht finden. –
@Ronk: Die aus der Datenbanktabelle gelesenen Daten sind nur eine Teilmenge der Daten der Tabelle und nicht alle Daten in der Tabelle. Ich bin neugierig auf die "iterating all over" obwohl. –