Trong ứng dụng của tôi, có nhiều luồng cố gắng để chèn đến một MySQL database.Is executeUpdate phương pháp thread-an toàn để sử dụng? Làm thế nào tôi có thể làm công việc này?Phương thức executeUpdate có trong Java là một phương thức an toàn không?
Trả lời
Mặc dù phương pháp executeUpdate
có thể là chủ đề an toàn, báo cáo đã chuẩn bị không được thiết kế để sử dụng đồng thời. Điều này là do mỗi cá thể lưu trữ các tham số của bạn cho đến khi executeUpdate
hướng dẫn nó gửi các tham số tới MySQL. Hơn nữa, vì các giao dịch được quản lý thông qua các đối tượng Connection
, các kết nối chia sẻ đồng thời mà không đồng bộ hóa có thể cung cấp cho bạn các hành vi không mong muốn trên các lần commit/rollback.
Để thực hiện chèn từ nhiều luồng hoạt động đồng thời, mỗi chuỗi cần sử dụng riêng Connection
và tự tạo PreparedStatement
của riêng nó. Sử dụng nhiều câu lệnh chuẩn bị đồng thời trên cùng một cơ sở dữ liệu là luồng an toàn, vì đồng thời được quản lý ở phía RDBMS.
Không có gì trong Javadoc nói rằng Connection,
a PreparedStatement,
hoặc ResultSet
là chủ đề an toàn và do đó không có phương pháp nào của chúng.
executeUpdate()
không an toàn chỉ để sử dụng cho nhiều chủ đề.
bạn có thể tạo nhiều kết nối để mỗi luồng sử dụng kết nối JDBC của riêng nó với cơ sở dữ liệu.
- 1. Các mảng Java trong một luồng phương thức tĩnh có an toàn không?
- 2. Phương thức SetValue/GetValue của System.Array có an toàn không?
- 3. Nhập tên lớp an toàn vào một phương thức
- 4. Có an toàn khi gọi phương thức được đồng bộ từ một phương thức được đồng bộ khác không?
- 5. Có hình thức "nhập an toàn" trong Java không?
- 6. Có bắt được một phương thức trong java không?
- 7. Có thể gọi phương thức nội bộ từ một phương thức động trong .NET không?
- 8. Việc khai báo một phương thức trung bình của lớp Java có nghĩa là các phương thức mà nó gọi trong các lớp khác cũng là strictfp không?
- 9. Có phương thức gọi là "getBackgroundColor" không?
- 10. phương thức compareTo java
- 11. Việc ném một ngoại lệ trong một phương thức có khiến phương thức trả về không?
- 12. Cách đơn giản nhất để tạo toàn bộ một phương thức an toàn cho luồng?
- 13. ThreadBlockingQueue có chèn và loại bỏ các phương thức an toàn không?
- 14. Các cuộc gọi đến các phương thức Javascript có an toàn hoặc đồng bộ hóa không?
- 15. Có thể viết phương thức hoán đổi trong Java không?
- 16. Java - Thread.sleep trong phương thức chính
- 17. Có thuộc tính nào để đánh dấu lớp hoặc phương thức là luồng an toàn trong .NET không?
- 18. Sử dụng phương thức abs() trong java. Trình biên dịch của tôi không biết phương thức
- 19. Java: Phương thức không trả lại. (XComponent.dispose
- 20. Tạo phương thức hashCode() - Java
- 21. Chuỗi thông số phương pháp có an toàn trong Java không?
- 22. Gọi phương thức ảo trong java là gì?
- 23. Phương thức liên kết/neo trong Java
- 24. Tại sao có thể gọi phương thức trên phương thức giao diện Java? [So sánh]
- 25. gọi phương thức java trong mã javascript
- 26. Tìm phương thức gọi trong Java
- 27. Các phương thức gốc trong Java
- 28. Tạo một phương thức đồng thời là một thể hiện và phương thức lớp
- 29. Phương thức gọi bên trong phương thức khác trong javascript?
- 30. Phương thức giao diện Java Phương pháp: Mỗi lớp có thực hiện một giao diện không?
Xem điều này .. http://stackoverflow.com/questions/8828202/is-executeupdate-method-in-java-thread-safe – Varun