当前位置: 首页 > 面试题库 >

如何检查结果集是否具有一行或更多行?

潘弘壮
2023-03-14
问题内容

如何使用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);
}

但是,在某些情况下,您可能希望对结果进行加窗显示,并且需要提前记录数以向用户显示Row 1 to 10 of 100。您可以先执行一个单独的查询SELECT COUNT(*)来获取记录计数,但是请注意,计数只是一个近似值,因为可以在执行两个查询的时间之间添加或删除行。

ResultSet概述中的样本



 类似资料:
  • 问题内容: 结果集没有hasNext的方法。我想检查resultSet是否有任何值 这是正确的方法吗 问题答案: 没错,最初的光标指向第一行之前,如果第一次调用,则没有数据。 如果使用此方法,则由于它现在已定位在第一行之后,因此可能必须在复位后立即调用。 但是,应该注意的是,塞弗(Seifer)在下面的回答是对该问题的更优雅的解决方案。

  • 问题内容: 我有一个表,我试图根据第二列的值将每一行分成一个或多个行。像这样: 我将其编写为SQL Server 2008中的sproc。我最好的解决方案是使用游标并向临时表中为表中的每一行添加[pcs]行数。似乎必须有一个比我所缺少的解决方案更简单的解决方案。谢谢。 问题答案: 您可以使用递归CTE: 这是一个演示供您尝试。

  • 问题内容: 我需要找到属于特定条件的任何组的所有行。 我将一个组定义为在“组”列中共享一个值的几行。 相关组必须包含至少一行且Eligible设置为true的行,并且该组中至少有两行在Group或Eligible之外的任何列中必须彼此不同。 样表 所需结果 以下查询使我接近 问题在于它返回的结果太多,因为没有考虑该组中的记录之一是否被标记为合格。 我可能缺少一些简单的东西,但是我无法弄清楚如何检查

  • 我有一台带OS X 10.8.2的macbook pro。XCode已安装。我知道它出现在应用程序目录中。在/usr/bin中还有xcode build和xcode select文件,我需要知道是否安装了命令行工具。有命令吗?如何查看是否安装了XCode CLT,如果是,如何查找已安装的版本?

  • 我很难让这东西工作。基本上,一旦我单击用户配置的删除按钮,这个函数就会被调用。用户可以有多个配置。发生的情况是,一旦我删除了一个配置,它会寻找另一个配置,如果找到了,它会将其设置为当前配置文件。第一位工作正常,但如果返回什么,而不是输入它返回我一个错误... 代码: 错误: 请记住,我对Laravel和整个MVC环境非常陌生。

  • 问题内容: 我对Selenium非常陌生,因此如果这是一个愚蠢的问题,我深表歉意。我已经成功地将IntelliJ(播放!框架)与Selenium连接起来,并使用firefoxDrivers创建了一些测试。 我正在尝试检查页面是否已正确验证。 长话短说,我正在选择一个像这样的元素: 我做了一些进一步的操作(清除并更改值,提交“表单”),然后我想检查输入所在的TD是否被赋予了另一个类。 因此,问题是-