Urusan
Transaksi adalah unit eksekusi logis yang terdiri dari urutan operasi satu langkah atau beberapa langkah. Empat karakteristik transaksi: atomisitas, konsistensi, isoisasi, dan atomisitas daya tahan: unit eksekusi terkecil dari aplikasi transaksi, tidak dapat dibagi. Ini adalah badan eksekusi logis minimum yang tidak lagi terbagi dalam urusan.
Konsistensi: Hasil pelaksanaan transaksi harus membuat database dari satu konsistensi ke keadaan lain.
ISOITS: Eksekusi setiap transaksi tidak terganggu, dan operasi internal transaksi apa pun diisolasi untuk transaksi bersamaan lainnya. Artinya: status perantara dari pihak lain tidak dapat dilihat antara transaksi eksekusi bersamaan, dan urusan eksekusi bersamaan tidak dapat dipengaruhi oleh satu sama lain.
Daya tahan: Kontinuitas juga dikenal sebagai kegigihan.
Kalimat yang terlibat dalam database yang biasa adalah: satu set pernyataan DML (Bahasa Munipurasi Data, Bahasa Operasi Data), set pernyataan DML ini akan mempertahankan konsistensi yang baik setelah modifikasi; ; Pernyataan Bahasa Kontrol Data, Bahasa Kontrol Data), terutama memberikan dan mencabut pernyataan. Pernyataan DDL dan DCL hanya dapat tersedia paling banyak, karena akan menyebabkan segera mengirimkan transaksi. Ketika semua operasi basis data yang terkandung di kantor berhasil diimplementasikan, transaksi harus diserahkan untuk membuat modifikasi ini efektif secara permanen. Ada dua cara pengiriman transaksi: pengiriman tampilan dan pengiriman otomatis. Pengajuan Tampilan: Gunakan Komit untuk mengirimkan Pengajuan Otomatis: Jalankan DLL atau DCL, atau program ditarik dari eksekusi operasi basis data apa pun dari setiap database yang terkandung dalam transaksi, itu harus digulung kembali untuk membuat semua modifikasi dalam transaksi gagal. Ada dua cara untuk menggulung transaksi: tampilan rollback dan rollback otomatis. Tampilkan Rollback: Gunakan rollback untuk menggulung secara otomatis: kesalahan sistem atau keluar secara paksa.
Kemungkinan masalah pemrosesan bersamaan transaksi
1. Dirty Read: Satu transaksi membaca data yang belum dikirimkan oleh transaksi lain
2. Baca yang tidak dapat diterima: Pengoperasian satu transaksi menyebabkan data yang berbeda dibaca dua kali sebelum dan sesudah
3. Phantom Read: Operasi satu transaksi mengarah pada hasil hasil hasil dua kueri sebelum dan sesudah
Contoh:
Selama pelaksanaan transaksi A dan B:
Mekanisme transaksi java jdbc
Impor Java.sql.connection; Final String = "Root"; String querySQL = query sql "; Pembaruan PSTMTUPDate = Const.PrepareStatement (UpdatesQL); ); } Akhirnya {coba {if (pstmtupdate! = Null) {pstmtupdate.close ();} if (pstmtqury! = Null) {pstmtqury.close ();} if (con! = Null) {conn.cl ose (ose) ;}} Catch (sqlexception e2) {}}}}}
Dukungan Urusan JDBC
Koneksi JDBC juga mendukung hal -hal. Dengan kata lain, eksekusi setiap pernyataan SQL akan segera diserahkan ke database, yang akan efektif secara permanen dan tidak dapat mengoperasikannya. Tutup kiriman koneksi otomatis dan mulai hal -hal. Metode koneksi setautocommit adalah: connection.setAutocommit (false); Ketika kita mengaktifkan hal -hal, operasi basis data yang diselesaikan dalam koneksi saat ini tidak akan segera dikirim ke database, dan kita perlu memanggil metode koneksi komit. Jika ada kegagalan pernyataan, Anda dapat memanggil rollback bolak -balik. Catatan: Jika koneksi menemukan kelainan SQLException yang tidak diproses, sistem akan keluar secara tidak normal, dan sistem akan secara otomatis memutar kembali transaksi. Jika program menangkap kelainan ini, perlu untuk menampilkan transaksi rollback dalam pengobatan abnormal. Koneksi menyediakan metode untuk mengatur titik penghematan di tengah transaksi: setSavePoint. titik. SavePoint SetSavePoint (nama string): Buat titik tengah dengan nama yang ditentukan dalam transaksi saat ini dan kembalikan objek savePoint dari titik tengah. Menurut objek titik tengah. Nama pengaturan hanyalah perbedaan yang lebih baik antara objek titik tengah.
Dukungan JDBC untuk transaksi tercermin dalam tiga aspek:
1. Mode Auto-Compom
Koneksi menyediakan properti berkomitmen otomatis untuk menentukan kapan transaksi selesai
2. Ketika komit otomatis benar, ketika pelaksanaan setiap operasi SQL independen selesai, transaksi segera diserahkan, yang berarti bahwa setiap operasi SQL adalah transaksi
Kapan operasi SQL independen yang dihitung, spesifikasi JDBC didefinisikan seperti ini:
Untuk Bahasa Operasi Data (DML) dan Bahasa Definisi Data (DDL), segera setelah kalimat dijalankan
3. Ketika komit otomatis salah, setiap transaksi harus menampilkan metode panggilan untuk dikirim, atau metode panggilan balik ditampilkan untuk memutar kembali. Default Auto-Commit
Tingkat transaksi
JDBC mendefinisikan level lima transaksi ::
Titik penyelamatan
JDBC mendefinisikan antarmuka SavePoint dan menyediakan mekanisme kontrol transaksi yang lebih halus. Ketika titik penghematan diatur, Anda dapat mundur ke status di titik penghematan, bukan seluruh transaksi rollback. Anda dapat meminta informasi ini. mengeksekusi pernyataan modifikasi sebelum melakukan pertanyaan. Untuk menyelesaikan masalah ini, kita harus memperkenalkan mekanisme transaksi JDBC.