如何检查结果集是否有一行或多行?
如何使用JDBC检查结果集是否有一行或多行?
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
boolean isMoreThanOneRow = rs.first() && rs.next();
你没有问这个,但你可能需要它:
boolean isEmpty = ! rs.first();
通常,我们不需要行计数,因为我们使用 WHILE 循环来循环访问结果集,而不是 FOR 循环:
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) {
// retrieve and print the values for the current row
int i = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
System.out.println("ROW = " + i + " " + s + " " + f);
}
但是,在某些情况下,您可能希望对结果进行窗口化,并且需要提前记录计数才能向用户显示类似 的内容。您可以使用 first 执行单独的查询,以获取记录计数,但请注意,计数只是近似值,因为可以在执行两个查询所需的时间之间添加或删除行。Row 1 to 10 of 100
SELECT COUNT(*)
来自结果集概述的示例
有很多选择,由于你没有提供更多的上下文,所以唯一剩下的就是猜测。我的答案按复杂性和性能升序排序。
select count(1) FROM ...
rs.next()
rs.next()
rs.previous()