我有一个 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
.

呼唤远方
TA贡献1856条经验 获得超11个赞
您只能从客户端的结果集中读取前 5 行,但理想情况下您应该限制数据库返回的行数。limit 5
在查询中使用。
这将避免将那些额外的行从数据库返回到客户端所需的大量不必要的工作。
添加回答
举报
0/150
提交
取消