java - 如何获取 ResultSet 包含的行数?

标签 java jdbc resultset

我的查询旨在返回一行(因为它是通过唯一 id 选择记录)。如果结果集为空,我将抛出一个异常;如果结果集包含多于 1 行,我将抛出另一个异常。恕我直言,在这种情况下,使用 while(rs.next()) 迭代结果集看起来不太漂亮。我可以立即获取结果集中的行数吗?

最佳答案

我认为没有办法在单个方法调用中做到这一点。

您可以使用 ResultSet 的 last() 方法,然后调用 ResultSet 的 getRow() 方法,该方法将为您提供 ResultSet 大小并在以下情况下抛出异常:根据尺寸需要。

请记住使用finally子句来关闭所有连接/ds:)

rs.last();

if(rs.getRow() > 1) {
throw (...);
}

关于java - 如何获取 ResultSet 包含的行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7808350/

相关文章:

java - 寻找一种通过仅查找字符串的一部分来从 ArrayList 中删除字符串的方法

java - Surefire-plugin 执行测试用例的顺序是什么?

java.lang.ClassNotFoundException : at jdbc. DatabaseAccess.doGet(DatabaseAccess.java:25)

java - 将 SQL 结果映射到 java 对象的策略

java - 循环切换序列反模式

java - google 的 ImmutableList 和 Collections.unmodifiableList() 有什么区别?

eclipse - 如何在 Eclipse web 项目中安装 JDBC 驱动程序而不会遇到 java.lang.ClassNotFoundexception

java - ResultSet.insertRow() VS Statement.executeUpdate ("INSERT INTO...")。使用哪个更好?

从 MySQL 查询中找到第一个正确记录后,Java ResultSet 返回所有记录

java - 如何从mysql java中获取有限的数据