Sử dụng Transaction trong JDBC

Transaction là một tiến trình xử lý được thực thi một cách tuần tự và độc lập theo nguyên tắc hoặc tất cả đều thành công hoặc một tiến trình thất bại thì toàn bộ tiến trình đều thất bại.

Ví dụ sử dụng Transaction trong JDBC:

Ví dụ 1: Khách hàng “Tùng Dương” muốn chuyển 500.000 VNĐ vào tài khoản của “Công Minh”. Như vậy để công việc này được thực hiện thành công thì “Tùng Dương” sẽ phải trừ 500.000 VNĐ từ tài khoản trước sau đó mới chuyển tiền qua tài khoản người nhận.

kenhlaptrinh-su-dung-transaction-trong-jdbc

Nhưng khi số tiền trong tài khoản “Tùng Dương” bị trừ 500.000 VNĐ thì lỡ trong quá trình giao dịch có sự cố xảy ra thì 500.00 VNĐ sẽ không được cộng vào tài khoản “Công Minh”, vậy số tiền 500.000 VNĐ đang bị mất trong không gian mạng.

Để giải quyết bài toán trên thì bạn sẽ sử dụng Transaction trong JDBC như là giải pháp hiệu quả và an toàn nhất.  Nếu như có lỗi xảy ra trong quá trình chuyển tiền thì dữ liệu được cập nhật lại trạng thái như trước đó.

Ví dụ 2: Bảng db_users có các thông tin id, fullname, age và email. Bây giờ mình sẽ thực hiện thêm 2 dòng dữ liệu vào có cùng khóa chính trong có sử dụng Transaction và không sử dụng Transaction thì xem kết quả như thế nào.

Trường hợp có sử dụng Transaction:

Khi chạy đoạn mã trên sẽ có thông báo lỗi như sau:

Như vậy với thông báo trên thì dữ liệu bị trùng khóa chính và dẫn đến xảy ra lỗi, và do sử dụng Transaction nên trong bảng db_users lúc này dữ liệu không.

Trường hợp không sử dụng Transaction:

Trong trường hợp không sử dụng Transaction thì bạn vẫn bị lỗi do cùng khóa chính nên dữ liệu thứ hai không thể thêm được.

Tuy nhiên, do không sử dụng Transaction nên dữ liệu thứ nhất vẫn được thêm vào bảng db_users, sau đó khi thực hiện thêm dữ liệu thứ hai mới gặp lỗi trùng khóa nên không thể thêm vào bảng db_users được.

Hướng dẫn sử dụng Transaction trong JDBC:

– Để khai báo sử dụng Transaction trong JDBC cần bắt đầu bằng lệnh sau:

– Trong trường hợp có một tiến trình nào đó thất bại thì bạn gọi lệnh:

– Còn khi tất cả đều thành công thì bạn gọi lệnh:

Lời kết: Nói tóm lại Transaction là một tiến trình xử lý theo nguyên tắc hoặc tất cả đều thành công hoặc một tiến trình thất bại thì toàn bộ tiến trình đều thất bại, vậy nên việc áp dụng Transaction trong JDBC vào sẽ giúp bạn tránh được nhiều rủi ro.

(Tác giả: Tùng Dương)

Bình luận

Loading...