1. Apa yang dimaksud dengan transaksi Java?
Kepercayaan umum adalah bahwa transaksi hanya relevan dengan database.
Transaksi harus mematuhi prinsip ACID yang ditetapkan oleh ISO/IEC. ACID adalah singkatan dari atomisitas, konsistensi, isolasi, dan daya tahan. Atomisitas suatu transaksi berarti bahwa setiap kegagalan selama eksekusi transaksi akan menyebabkan modifikasi apa pun yang dilakukan oleh transaksi tersebut menjadi tidak valid. Konsistensi berarti ketika suatu transaksi gagal, semua data yang terpengaruh oleh transaksi tersebut harus dikembalikan ke keadaan sebelum transaksi dieksekusi. Isolasi berarti bahwa modifikasi data selama eksekusi transaksi tidak terlihat oleh transaksi lain sebelum transaksi tersebut dilakukan. Persistensi berarti status data yang dikirimkan harus benar ketika eksekusi transaksi gagal.
Pemahaman populer adalah bahwa suatu transaksi adalah sekumpulan unit operasi atom. Dari perspektif database, ini adalah sekumpulan instruksi SQL. Jika salah satu instruksi mengalami kesalahan dalam eksekusi karena alasan tertentu, semuanya instruksi yang dijalankan sebelumnya akan dibatalkan. Jawaban yang lebih sederhana adalah: semua eksekusi berhasil, atau dibatalkan dan tidak dijalankan.
Karena konsep transaksi berasal dari database, apa itu transaksi Java? Apa hubungannya?
Padahal, jika sistem aplikasi Java ingin mengoperasikan database, diimplementasikan melalui JDBC. Penambahan, modifikasi, dan penghapusan semuanya diterapkan secara tidak langsung melalui metode yang sesuai, dan kontrol transaksi juga ditransfer ke kode program Java. Oleh karena itu, transaksi operasi database secara tradisional disebut transaksi Java.
2. Mengapa transaksi diperlukan
Transaksi diusulkan untuk menyelesaikan operasi keamanan data. Kontrol transaksi sebenarnya untuk mengontrol akses data yang aman. Berikut contoh sederhananya: Misalnya, dalam bisnis transfer bank, akun A ingin mentransfer 1.000 yuan dari rekeningnya sendiri ke akun B. Saldo akun A harus dikurangi 1.000 yuan terlebih dahulu, lalu saldo akun B harus ditingkatkan sebesar 1.000 yuan. Jika ada masalah pada jaringan perantara, pengurangan 1.000 yuan dari akun A telah berakhir, dan pengoperasian B gagal karena gangguan jaringan, maka seluruh bisnis gagal, dan pengendalian harus dilakukan untuk meminta pembatalan transfer bisnis akun A. Hal ini dapat memastikan kebenaran bisnis. Untuk menyelesaikan operasi ini, diperlukan suatu transaksi. Pengurangan dana akun A dan penambahan dana akun B digabungkan menjadi satu transaksi. sehingga menjaga keamanan data.
3. Jenis transaksi Java
Ada tiga jenis transaksi Java: transaksi JDBC, transaksi JTA (Java Transaction API), dan transaksi container.
1. Transaksi JDBC
Transaksi JDBC dikendalikan menggunakan objek Connection. Antarmuka Koneksi JDBC (java.sql.Connection) menyediakan dua mode transaksi: pengiriman otomatis dan pengiriman manual. java.sql.Connection menyediakan metode berikut untuk mengontrol transaksi:
kekosongan publik setAutoCommit(boolean)
boolean publik getAutoCommit()
komit kekosongan publik()
pengembalian kekosongan publik()
Saat menggunakan demarkasi transaksi JDBC, Anda dapat menggabungkan beberapa pernyataan SQL menjadi satu transaksi. Salah satu kelemahan transaksi JDBC adalah cakupan transaksinya terbatas pada satu koneksi database. Transaksi JDBC tidak dapat menjangkau banyak database.