Transaction trong JDBC



Nói chung, Transaction (giao tác) là một tiến trình xử lý, có điểm bắt đầu và điểm kết thúc, gồm nhiều phép thực thi nhỏ, trong đó mỗi phép thực thi được thực thi một cách tuần tự và độc lập theo nguyên tắc là tất cả thành công hoặc một phép thực thi thất bại thì cả tiến trình thất bại.

Các thuộc tính ACID miêu tả rõ ràng nhất về Transaction. 4 thuộc tính này bao gồm Atomicity, Consistency, Isolation và Durability, trong đó:

  • Atomicity nghĩa là tất cả thành công hoặc không.

  • Consistency bảo đảm rằng tính đồng nhất của dữ liệu.

  • Isolation bảo đảm rằng Transaction này là độc lập với Transaction khác.

  • Durability nghĩa là khi một Transaction đã được ký thác thì nó sẽ vẫn tồn tại như thế cho dù xảy ra các lỗi, …

Theo mặc định, kết nối JDBC của bạn là trong chế độ auto-commit, tức là mỗi lệnh SQL được ký thác tới Database mỗi khi nó kết thúc. Điều này là tốt với các ứng dụng nhỏ khi mà số lượng đơn vị công việc là nhỏ và không phức tạp. Với các ứng dụng trung bình và lớn, việc quản lý riêng Transaction giúp bạn cải thiện rõ rệt hiệu suất và duy trì tính toàn vẹn của tiến trình.

Trong JDBC, Connection Interface cung cấp các phương thức sau để quản lý transaction:

1. void setAutoCommit(boolean status)

Là true theo mặc định. Để thao tác với Transaction, bạn nên thiết lập về false.

2. void commit()

Để ký thác các thay đổi bạn đã thực hiện.

Quảng cáo

3. void rollback()

Xóa tất cả các thay đổi đã được thực hiện trước đó và quay về trạng thái trước khi thực hiện thay đổi.

4. setSavepoint(String ten_cua_savepoint)

Định nghĩa một savepoint mới. Phương thức này cũng trả về một đối tượng Savepoint.

5. releaseSavepoint(Savepoint ten_cua_savepoint)

Xóa một savepoint. Phương thức này nhận một đối tượng Savepoint làm tham số.

6. rollback (String ten_cua_savepoint)

Quay về trạng thái của savepoint đã cho.

Bởi vì phần ví dụ là khá dài, mình sẽ chia chương này thành 3 chương. Bạn tiếp tục theo dõi hai chương tiếp theo để tìm hiểu ví dụ chi tiết cho hai hoạt động Commit & Rollback và sử dụng Savepoint.

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.



Demo một bài giảng trong khóa học online tại vietjackteam.


Tài liệu giáo viên