Я сделал, чтобы ResultSet возразил содержащий все строки, возвращенные из запроса SQL.
Я хочу смочь к (в коде Java, НЕ вызвать его в SQL), чтобы смочь взять ResultSet и преобразовать его так, чтобы он только содержал 1 (первое) строка.
Каков был бы способ достигнуть этого? Кроме того, есть ли другой соответствующий класс (где-нибудь в java.sql или в другом месте) для хранения просто одной строки вместо того, чтобы обрезать мой ResultSet?
Спасибо!
Чтобы просто ограничить количество строк в результирующем наборе , вы можете сделать следующее:
String yourQuery = "select * from some_table";
PreparedStatement statement = connection.prepareStatement(yourQuery);
statement.setMaxRows(1);
rs = statement.executeQuery();
Что касается конкретный класс, который может содержать только одну строку, это действительно зависит от того, что вы хотите делать с данными. Например, вы можете просто извлечь содержимое набора результатов и сохранить его в массиве, или, если вам нужны имена, а также значения, карту . Вы также можете просто прочитать данные в POJO, если вы предпочитаете работать с конкретным объектом, а не с общей структурой данных.
Вы ссылаетесь на необходимость хранить одну строку данных, и в этом случае я бы сказал, что использование ResultSet
, вероятно, плохая идея , поскольку он обычно будет потреблять ресурсы базы данных до закрытия (например, базовый java.sql.Connection
).
Вместо этого я бы рекомендовал прочитать первую строку вашего ResultSet
в POJO, возможно, используя служебные классы Spring JDBC (например, RowMapper
), чтобы добиться этого кратко. Сразу после этого закройте ResultSet
и связанный с ним Statement
и Connection
(или позвольте Spring сделать это за вас).
Я предполагаю, что вам понадобится специальное действие и вызовите COM-интерфейсы самостоятельно. Запросите IShellLink (или IPersistFile?) Для IShellLinkDataList, затем: IShellLinkDataList-> SetFlags (orgFlagsFromGetFlags | SLDF_RUNAS_USER);
Изменить: у Раймонда есть полный пример кода в его блоге
--- -