2 回答

TA貢獻1854條經驗 獲得超8個贊
經過大量搜索我終于找到了答案。
您可以使用 resultSet.absolute(row_number) 方法來實現此目標。像這樣編寫 getRow() 方法主體:
public static Person getRow(int rowNumber) throws SQLException {
String sql = "SELECT * FROM profiles";
try (
Connection connection = DBUtil.getConnection();
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
) {
if (resultSet.absolute(rowNumber)) {
return new Person(resultSet.getInt("personId"), resultSet.getString("name"),
resultSet.getString("family"), resultSet.getString("nationalId"));
} else {
System.err.println("No row were found !");
return null;
}
} catch (SQLException e) {
System.err.println(e);
return null;
}
}
當然,您將通過這種方式檢索所有數據庫。但它對于像我這樣大的數據庫工作得很好(;

TA貢獻1794條經驗 獲得超7個贊
原因就在這里。您使用 rowNumber 來搜索 personId。您不應該對哪些值有 rowNumber 做任何假設。相反,按 personId 搜索。
添加回答
舉報