Có ai biết cách tốt hơn để lấy số hàng trong một kết quả Java trả về từ cơ sở dữ liệu MySQL không? Kết quả trả về sẽ không phải là tổng số hàng được đọc từ cơ sở dữ liệu vì vậy tôi không nghĩ rằng tôi có thể sử dụng hàm tổng hợp của COUNT
của SQL.Lấy số lượng hàng trong một kết quả Java
public static int getResultSetRowCount(ResultSet resultSet) {
int size = 0;
try {
resultSet.last();
size = resultSet.getRow();
resultSet.beforeFirst();
}
catch(Exception ex) {
return 0;
}
return size;
}
Calling resultSet.last() sẽ gây ra kết quả thiết lập để thực sự lặp qua tất cả các hồ sơ - vì vậy nó rõ ràng là không hiệu quả. Ngoài ra nó sẽ buộc tất cả dữ liệu được lưu vào bộ nhớ ngay cả khi bạn không cần nó. Bất kỳ lý do nào tại sao bạn nói "anh ấy trả về kết quả sẽ không phải là tổng số hàng được đọc từ cơ sở dữ liệu"? – RonK
@RonK: Tại sao bạn nghĩ rằng nó sẽ được lặp lại trên tất cả? Tôi không thể tìm thấy bất cứ điều gì như thế này trong tài liệu. –
@Ronk: Dữ liệu được đọc từ bảng cơ sở dữ liệu sẽ là một tập con của dữ liệu của bảng chỉ thay vì tất cả dữ liệu trong bảng. Tôi tò mò về việc 'lặp lại tất cả' mặc dù. –