Получение количества строк в наборе результатов Java

Кто-либо знает лучший способ получить количество строк в наборе результатов 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;
}
26
задан a_horse_with_no_name 8 February 2018 в 12:45
поделиться

3 ответа

Лучший ответ - забыть о количестве строк до тех пор, пока вы успешно не загрузите ResultSet в объект или коллекцию. Вы можете вести подсчет количества строк с помощью любого из этих вариантов.

Важно закрывать ResultSet (и все ресурсы SQL, такие как Connection и Statement) в максимально узкой области видимости метода. Это означает не передавать ResultSet за пределы уровня персистентности. Лучше получить количество строк с помощью вызова Collection size().

Перестаньте думать о базах данных и начните думать в терминах объектов. Java - объектно-ориентированный язык.

21
ответ дан 28 November 2019 в 07:33
поделиться

Вы можете выполнить

SELECT FOUND_ROWS()

сразу после выполнения вашего оператора SELECT, чтобы узнать количество строк.

9
ответ дан 28 November 2019 в 07:33
поделиться

Вы всегда можете использовать SELECT COUNT() с теми же точными условиями, прежде чем делать фактический SELECT.

2
ответ дан 28 November 2019 в 07:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: