簡體   English   中英

如何只從java.sql.ResultSet獲取第一行?

[英]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以及關聯的StatementConnection (或允許Spring為您執行此操作)。

在SQLite中,您可以限制執行的行數:

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

其中LIMIT是您想要的行數,OFFSET是您要從哪里開始的rownumber。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM