java - 如何使用 JDBC 从 ResultSet 中只获取 5 行?

标签 java sql jdbc

我有一个可能会获取多行数据的选择 SQL。 我只想要前 5 行。 除了添加 rownums = 5 或添加 statement.setMaxRows(5)。 我可以使用 java 编码得到结果吗? 谢谢。

我尝试了 for 循环和 while(rs.next() && i < 5)。所有这些都不起作用。

    try (Connection connection = abc.getConnection();
        PreparedStatement statement = connection.prepareStatement(sql)) 
    {
        statement.setString(1,idNum);
        ResultSet rs = statement.executeQuery();

        for (int i = 0; i < 5; i++) {
            while (rs.next()) {
                itemList.add(rs.getString("idName"));                   
            }
        }
    }

它显示了来自选择 SQL 的 itemList 中的所有结果。

最佳答案

目前,循环的单次迭代会耗尽整个结果集。

您可能想要添加结束条件,例如:

for (int i = 0; i < 5 && rs.next(); i++) {

    itemList.add(rs.getString("idName"));                   

}

请注意,您对 while(rs.next() && i < 5) 的尝试也应该工作,你可能只是错过了 i 的增量.

关于java - 如何使用 JDBC 从 ResultSet 中只获取 5 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56967911/

相关文章:

java - 查询选择不同的行和自动生成的测试 ID 的最大值?

java - Spring boot 日志记录/Java 日志记录 - 显示配置/设置的工具

JavaFX 拖放交互对象

java - 如何将 myBatis(iBatis) 结果作为 Iterable 获取。 (在非常大的行的情况下)

Java 如何正确转换 jdbc 查询的结果

java - 使用 JSON for OData 时不会返回导航链接(使用 Apache Olingo for Java)

sql - Postgres : Create Column and Update Column Values with Query Output

php - 从 oscommerce 中删除不活跃的产品

sql - 按季度 SQL 查询的聚合结果

java.sql.SQLException : No suitable driver found for jdbc:mysql