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.

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.

Mọi người cho thể tham gia khóa học thứ 3 của vietjackteam vào đầu tháng 07/2017 do anh Nguyễn Thanh Tuyền, admin vietjack.com trực tiếp giảng dạy tại Hà Nội. Chi tiết nội dung khóa học tham khỏa link : Khóa học Java.Các bạn học CNTT, điện tử viễn thông, đa phương tiện, điện-điện tử, toán tin có thể theo học khóa này. Khóa học cũng đưa 200 câu hỏi phỏng vấn java trên https://www.javatpoint.com/corejava-interview-questions vào nội dung để giúp các bạn dễ dàng vượt qua kì phỏng vấn

Mọi người có thể xem demo nội dung khóa học tại địa chỉ Video demo khóa học Offline

Các bạn ở xa học không có điều kiện thời gian có thể tham dự khóa Java online để chủ động cho việc học tập. Thông tin khóa học tại Khóa học Java Online trên Udemy

Loạt bài hướng dẫn học Java JDBC cơ bản và nâng cao của chúng tôi dựa trên nguồn tài liệu của: Tutorialspoint.com



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