[英]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.