Javadoc nói cho .close()
của PreparedStatement
nói rằng nó ..Mối quan hệ giữa "đóng" đối với Chuẩn bị và Kết nối?
phiên bản cơ sở dữ liệu bản Tuyên Bố này của đối tượng và các nguồn lực JDBC ngay lập tức thay vì chờ đợi điều này xảy ra khi nó sẽ tự động đóng lại. Thông thường, thực tiễn tốt là giải phóng tài nguyên ngay sau khi bạn kết thúc với chúng để tránh bị ràng buộc tài nguyên cơ sở dữ liệu .
Gọi phương thức đóng trên đối tượng Statement đã bị đóng không có hiệu lực.
Lưu ý: Khi đối tượng Statement được đóng, đối tượng ResultSet hiện tại của nó, nếu có, cũng bị đóng.
Xem xét kịch bản sau đây
MyConnector databaseConnector = DBManager.instance().getConnector();
Connection con = databaseConnector.getConnection(); // returns java.sql.Connection
PreparedStatement pstmt = null;
try {
pstmt = con.prepareStatement("some query");
...
} finally {
if (pstmt != null)
pstmt.close();
}
Trong ví dụ này, sẽ pstmt.close()
cũng gần con
?
No. Đóng một tuyên bố sẽ * không * đóng kết nối (vì có thể có * nhiều * câu lệnh cho một kết nối). Kết nối cũng * cũng * được coi là tài nguyên được quản lý. –
Bạn luôn có thể kiểm tra yoursef này, với "con.isClosed()" http://docs.oracle.com/javase/6/docs/api/java/sql/Connection.html –