Để làm rõ: Tôi biết rằng việc tạo PreparedStatement
ngoài vòng lặp là điều đúng đắn. Tôi đã hỏi câu hỏi này chỉ vì tò mò.Tạo một tuyên bố đã chuẩn bị bên trong một vòng lặp
Giả sử rằng tôi đang tạo một PreparedStatement
bên trong vòng lặp luôn có cùng truy vấn SQL.
final String sql = "INSERT INTO ...";
while (condition) {
...
PreparedStatement statement = connection.prepareStatement(sql);
// Fill values of the prepared statement
// Execute statement
...
}
Điều này có vô dụng vì đối tượng PreparedStatement
luôn được tạo lại? Hoặc cơ sở dữ liệu bên dưới có nhận ra rằng nó luôn là truy vấn SQL tương tự mà PreparedStatement
được tạo ra và sử dụng lại nó?
Tại sao bạn đang tạo t anh ta 'PreparedStatement' bên trong vòng lặp? Đặt việc tạo ra bên ngoài vòng lặp và tái sử dụng nó trong vòng lặp. – Jesper
Điểm của câu lệnh chuẩn bị là chuẩn bị một lần và sử dụng nó nhiều lần. Việc triển khai thực tế có thể lên đến trình điều khiển, nhưng bạn phải kiểm tra thông số kỹ thuật để xem liệu có bất kỳ quy tắc thực tế nào liên quan đến điều này hay không. –
@ Jesper Tôi biết rằng nên tạo vòng lặp đó tốt hơn. Tôi vừa mới hỏi câu hỏi này từ tò mò. :-) –