[英]How to get only the first row from a java.sql.ResultSet?
我有一個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為您執行此操作)。
在SQLite中,您可以限制執行的行數:
"SELECT * FROM YOURTABLE ORDER BY YOURCOLUMN ASC LIMIT 3 OFFSET 3;
其中LIMIT是您想要的行數,OFFSET是您要從哪里開始的rownumber。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.