Вы будете иметь, чтобы сделать это как отдельный запрос, например:
SELECT COUNT(1) FROM table_name
Некоторые драйверы JDBC может сказать вам, но это не является обязательным поведение и, что более важно, водитель не может еще не знаю. Это может быть связано с тем, как оптимизирован запрос, например, две стратегии исполнения в Oracle - это как можно быстрее получить все строки или как можно быстрее получить первую строку.
Если вы делаете два отдельных запроса (один - счет, а другой - запрос), то вам нужно будет сделать их в рамках одной транзакции. Это будет хорошо работать с Oracle, но может быть проблематичным для других баз данных (например, SQL Server либо покажет вам незафиксированные данные, либо блокирует внешнее незафиксированное обновление в зависимости от уровня изоляции, тогда как Oracle поддерживает уровень изоляции, который дает вам последовательный данные без блокировки внешних обновлений).
Обычно, хотя на самом деле не имеет значения, сколько строк есть. Обычно такой запрос обрабатывается или обрабатывается пакетным способом, и в любом случае у вас есть информация о ходе выполнения в виде строк, загружаемых/обработанных, и вы можете обнаружить конец набора результатов (очевидно).
Хороший ответ, хотя я не понимаю, окончательный комментарий о обладании информацией о ходе работы. Откуда это? – Aktau 2011-11-08 14:48:19
Для этого требуется другой запрос. Если у вас есть прокручиваемый набор результатов, в других ответах есть лучшие варианты. – JDuarteDJ 2015-12-10 14:34:52