为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕森卡 2023-03-17 15:29:08
我有一个 select SQL 可能会获取多行数据。我只想要前 5 行。除了添加rownums = 5或添加statement.setMaxRows(5). 我可以使用 java 编码得到结果吗?谢谢。我尝试了循环和 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"));                               }        }    }itemList它显示了来自选择 SQL的所有结果。
查看完整描述

3 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

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

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

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

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

}

请注意,您的尝试 withwhile(rs.next() && i < 5)也应该有效,您可能只是错过了i.


查看完整回答
反对 回复 2023-03-17
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

您的查询负责从 DB 获取数据,因此最好控制从 db 本身检索行,这将避免您的 java 代码检查。根据您的要求在查询中使用限制 5。



查看完整回答
反对 回复 2023-03-17
?
呼唤远方

TA贡献1856条经验 获得超11个赞

您只能从客户端的结果集中读取前 5 行,但理想情况下您应该限制数据库返回的行数。limit 5在查询中使用。

这将避免将那些额外的行从数据库返回到客户端所需的大量不必要的工作。


查看完整回答
反对 回复 2023-03-17
  • 3 回答
  • 0 关注
  • 152 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号