CHỌN cũng yêu cầu giao dịch. Nó là không thể thực hiện mà không có bất kỳ giao dịch CHỌN. Thực tế là bạn không cần phải bắt đầu một cách rõ ràng và kết thúc một giao dịch khi chọn dữ liệu từ DB sử dụng một số công cụ SQL GUI là những công cụ được sử dụng chế độ autocommit. Trong autocommit chế độ, cơ sở dữ liệu sẽ tự động khởi động và cam kết giao dịch cho mỗi câu lệnh SQL đơn như vậy mà bạn không cần phải khai báo rõ ràng ranh giới giao dịch.
Nếu bạn không kết thúc (tức là cam kết hoặc rollback) một giao dịch, các kết nối cơ sở dữ liệu được sử dụng bởi giao dịch này sẽ không được phát hành và cơ sở dữ liệu của bạn sẽ chạy ra khỏi các kết nối có sẵn cuối cùng.
Đối với chế độ ngủ đông, nó sử dụng chế độ không autocommit theo mặc định (được xác định bởi các hibernate.connection.autocommit tài sản). Vì vậy, chúng ta phải khai báo các ranh giới giao dịch và đảm bảo các giao dịch kết thúc.
Nhưng nếu bạn chỉ truy vấn dữ liệu bằng cách sử dụng chế độ ngủ đông API, nó không quan trọng, ngay cả bạn không khai báo rõ ràng ranh giới giao dịch vì những điều sau:
Cơ sở dữ liệu thông thường sẽ bắt đầu một giao dịch mới tự động khi các câu lệnh SQL hiện nay đòi hỏi phải có một và không có giao dịch được bắt đầu một cách rõ ràng trước.
Session.close () sẽ đóng cửa () Kết nối cơ bản .Theo các đặc điểm kỹ thuật JDBC, nếu java.sql.Connection # close () được gọi và có một hoạt động giao dịch, kết quả của giao dịch hoạt động này phụ thuộc vào việc thực hiện của nhà cung cấp JDBC. Thông thường, JDBC driver sẽ tự động cam kết hoặc rollback giao dịch này. Nhưng trong trường hợp này, nó không quan trọng cho dù giao dịch cam kết hoặc rollbacks vì bạn đã có được những dữ liệu mà bạn muốn.
đang được dịch, vui lòng đợi..
