我有一個 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
提交
取消