Как получить только первый ряд из java.sql.ResultSet? - PullRequest
8 голосов
/ 19 апреля 2010

У меня есть объект ResultSet, содержащий все строки, возвращенные из запроса sql.

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

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

Спасибо!

Ответы [ 4 ]

16 голосов
/ 19 апреля 2010

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

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

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

5 голосов
/ 19 апреля 2010
4 голосов
/ 19 апреля 2010

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

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

0 голосов
/ 02 октября 2017

В SQLite вы можете ограничить количество выполняемых строк:

 "SELECT * FROM YOURTABLE ORDER BY YOURCOLUMN ASC LIMIT 3 OFFSET 3;

где LIMIT - количество строк, которое вы хотите, и OFFSET - количество строк, с которого вы хотите начать.

http://www.sqlitetutorial.net/sqlite-limit/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...