Как получить только первую строку от java.sql. ResultSet?

Я сделал, чтобы ResultSet возразил содержащий все строки, возвращенные из запроса SQL.

Я хочу смочь к (в коде Java, НЕ вызвать его в SQL), чтобы смочь взять ResultSet и преобразовать его так, чтобы он только содержал 1 (первое) строка.

Каков был бы способ достигнуть этого? Кроме того, есть ли другой соответствующий класс (где-нибудь в java.sql или в другом месте) для хранения просто одной строки вместо того, чтобы обрезать мой ResultSet?

Спасибо!

8
задан BalusC 19 April 2010 в 14:11
поделиться

3 ответа

Чтобы просто ограничить количество строк в результирующем наборе , вы можете сделать следующее:

String yourQuery = "select * from some_table";
PreparedStatement statement = connection.prepareStatement(yourQuery); 
statement.setMaxRows(1); 
rs = statement.executeQuery();

Что касается конкретный класс, который может содержать только одну строку, это действительно зависит от того, что вы хотите делать с данными. Например, вы можете просто извлечь содержимое набора результатов и сохранить его в массиве, или, если вам нужны имена, а также значения, карту . Вы также можете просто прочитать данные в POJO, если вы предпочитаете работать с конкретным объектом, а не с общей структурой данных.

16
ответ дан 5 December 2019 в 06:37
поделиться

Вы ссылаетесь на необходимость хранить одну строку данных, и в этом случае я бы сказал, что использование ResultSet , вероятно, плохая идея , поскольку он обычно будет потреблять ресурсы базы данных до закрытия (например, базовый java.sql.Connection ).

Вместо этого я бы рекомендовал прочитать первую строку вашего ResultSet в POJO, возможно, используя служебные классы Spring JDBC (например, RowMapper ), чтобы добиться этого кратко. Сразу после этого закройте ResultSet и связанный с ним Statement и Connection (или позвольте Spring сделать это за вас).

4
ответ дан 5 December 2019 в 06:37
поделиться

Я предполагаю, что вам понадобится специальное действие и вызовите COM-интерфейсы самостоятельно. Запросите IShellLink (или IPersistFile?) Для IShellLinkDataList, затем: IShellLinkDataList-> SetFlags (orgFlagsFromGetFlags | SLDF_RUNAS_USER);

Изменить: у Раймонда есть полный пример кода в его блоге

--- -

См. Statement.setMaxRows

5
ответ дан 5 December 2019 в 06:37
поделиться
Другие вопросы по тегам:

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