Кто-либо знает лучший способ получить количество строк в наборе результатов Java, возвращенном из базы данных MySQL? Возвращенный набор результатов не будет общим количеством строк, считанных из базы данных, таким образом, я не думаю, что могу использовать SQL COUNT
агрегатная функция.
public static int getResultSetRowCount(ResultSet resultSet) {
int size = 0;
try {
resultSet.last();
size = resultSet.getRow();
resultSet.beforeFirst();
}
catch(Exception ex) {
return 0;
}
return size;
}
Лучший ответ - забыть о количестве строк до тех пор, пока вы успешно не загрузите ResultSet в объект или коллекцию. Вы можете вести подсчет количества строк с помощью любого из этих вариантов.
Важно закрывать ResultSet (и все ресурсы SQL, такие как Connection и Statement) в максимально узкой области видимости метода. Это означает не передавать ResultSet за пределы уровня персистентности. Лучше получить количество строк с помощью вызова Collection size().
Перестаньте думать о базах данных и начните думать в терминах объектов. Java - объектно-ориентированный язык.
Вы можете выполнить
SELECT FOUND_ROWS()
сразу после выполнения вашего оператора SELECT, чтобы узнать количество строк.
Вы всегда можете использовать SELECT COUNT()
с теми же точными условиями, прежде чем делать фактический SELECT
.