Terdapat lima langkah untuk mengendalikan urus niaga JDBC: 1. Matikan penyerahan automatik untuk memulakan urus niaga manual; 2. Melaksanakan pelbagai operasi pangkalan data; 3. Hantar transaksi pada masa normal; 4 rollback dalam masa yang tidak normal; 5. Gunakan mata simpan untuk mengawal keadaan pertengahan apabila perlu. Secara lalai, JDBC berada dalam mod auto-commit. Setiap penyata SQL dikemukakan selepas pelaksanaan. Apabila pelbagai operasi terlibat dalam pembangunan sebenar, Connect.SetAutocommit (False) harus dipanggil untuk mematikan komit automatik supaya semua operasi berada dalam transaksi yang sama. Operasi berikutnya boleh dikemukakan melalui sambungan.commit () atau connection.rollback () rollback untuk memastikan konsistensi data. Adalah disyorkan untuk meletakkan kod utama dalam blok percubaan dan akhirnya memulihkan komitmen auto. Anda juga boleh menetapkan SavePoint untuk melaksanakan rollback tempatan.
Pengendalian transaksi dalam JDBC tidak rumit, tetapi beberapa perkara utama perlu difahami. Secara lalai, JDBC berada dalam mod auto-commit, yang bermaksud bahawa setiap pernyataan SQL akan diserahkan secara automatik selepas pelaksanaan. Tetapi dalam pembangunan sebenar, terutamanya apabila pelbagai operasi terlibat, kita perlu mengawal urus niaga secara manual untuk memastikan konsistensi data.
Mulakan urus niaga manual
Sekiranya anda ingin melakukan pelbagai operasi pangkalan data dan mahu mereka berjaya atau semua gagal, anda perlu mematikan komitmen automatik:
sambungan.setAutocommit (palsu);
Langkah ini sangat kritikal. Hanya apabila komitmen auto dimatikan, operasi seterusnya tidak akan berkuatkuasa dengan segera, tetapi akan menunggu anda secara aktif memanggil commit()
atau rollback()
.
Nota: Setelah transaksi manual dimulakan, semua operasi SQL akan termasuk dalam skop transaksi ini sehingga anda melakukan atau mengembalikan semula.
Hantar dan rollback
Setelah menyelesaikan beberapa siri operasi, jika semuanya baik -baik saja, urus niaga dapat dikemukakan:
sambungan.commit ();
Sekiranya pengecualian berlaku semasa proses atau langkah gagal, urus niaga harus dilancarkan semula:
sambungan.rollback ();
- Cadangan : Letakkan operasi utama dalam blok percubaan dan pengembalian semula pada masa apabila ralat berlaku.
- Nota : Jangan lupa untuk memulihkan komitmen auto di blok akhirnya untuk mengelakkan mempengaruhi operasi berikutnya.
Contohnya:
- Gulung kembali apabila pengecualian berlaku
- Selepas penyerahan selesai, sebaiknya hubungi
setAutoCommit(true)
untuk membebaskan sumber.
Menetapkan SavePoint
Kadang -kadang anda tidak mahu melancarkan keseluruhan transaksi, tetapi hanya kembali ke keadaan perantaraan tertentu. Anda boleh menggunakan titik simpan:
SavePoint SavePoint = Connection.SetSavePoint ("sebelum ini"); // melaksanakan beberapa operasi ... Connection.Rollback (SavePoint); // gulung kembali ke titik simpan ini
- Simpan Nama Point adalah pilihan simpan, atau tanpa nama yang boleh digunakan
- Gunakan SavePoints untuk mengawal aliran urus niaga dengan lebih halus
Mari kita meringkaskan
Pada dasarnya ia adalah: Tutup Auto-Commit, Melaksanakan Operasi, Komited atau Rollback mengikut hasilnya, dan tambahkan SavePoint jika perlu. Walaupun pemprosesan urus niaga mungkin kelihatan mudah, mudah untuk menyebabkan masalah kerana anda lupa untuk menutup auto-commit atau miss rollback, jadi berhati-hati tentang butiran ini semasa menulis kod.
Atas ialah kandungan terperinci Bagaimana menangani transaksi dalam JDBC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Selepas Java8-291, TLS1.1 dinyahdayakan, supaya JDBC tidak dapat menyambung ke SqlServer2008 menggunakan SSL. Berikut adalah penyelesaian untuk mengubah suai fail java.security jre ia adalah jre, pergi ke {JAVA_HOME}/jre/ Dalam lib/security, sebagai contoh????C:\ProgramFiles\Java\jre1.8.0_301\lib\security Jika ia adalah versi mudah alih bebas pemasangan Eclipse , cari java.security dalam folder pemasangan, seperti????xxx\plugins \org

Lockwaittimeoutceeded;tryrestartingtransaction - Cara menyelesaikan ralat MySQL: transaction wait timeouts Apabila menggunakan pangkalan data MySQL, kadangkala anda mungkin menghadapi ralat biasa: Lockwaittimeoutexceeded;tryrestartingtransaction. Ralat ini biasanya berlaku apabila

1. Pengenalan kepada PDO PDO ialah perpustakaan sambungan PHP, yang menyediakan cara berorientasikan objek untuk mengendalikan pangkalan data. PDO menyokong pelbagai pangkalan data, termasuk Mysql, postgresql, oracle, SQLServer, dll. PDO membolehkan pembangun menggunakan API bersatu untuk mengendalikan pangkalan data yang berbeza, yang membolehkan pembangun bertukar dengan mudah antara pangkalan data yang berbeza. 2. PDO menyambung ke pangkalan data Untuk menggunakan PDO untuk menyambung ke pangkalan data, anda perlu mencipta objek PDO terlebih dahulu. Pembina objek PDO menerima tiga parameter: jenis pangkalan data, nama hos, nama pengguna pangkalan data dan kata laluan. Sebagai contoh, kod berikut mencipta objek yang bersambung ke pangkalan data mysql: $dsn="mysq

Pemprosesan transaksi MySQL: perbezaan antara penyerahan automatik dan penyerahan manual Dalam pangkalan data MySQL, urus niaga ialah satu set penyata SQL sama ada semua pelaksanaan berjaya atau semua pelaksanaan gagal, memastikan ketekalan dan integriti data. Dalam MySQL, urus niaga boleh dibahagikan kepada penyerahan automatik dan penyerahan manual Perbezaannya terletak pada masa penyerahan transaksi dan skop kawalan ke atas transaksi. Berikut akan memperkenalkan perbezaan antara penyerahan automatik dan penyerahan manual secara terperinci, dan memberikan contoh kod khusus untuk digambarkan. 1. Hantar secara automatik dalam MySQL, jika ia tidak dipaparkan

Transaksi memastikan integriti data pangkalan data, termasuk atomicity, konsistensi, pengasingan dan ketahanan. JDBC menggunakan antara muka Sambungan untuk menyediakan kawalan transaksi (setAutoCommit, commit, rollback). Mekanisme kawalan konkurensi menyelaraskan operasi serentak, menggunakan kunci atau kawalan konkurensi optimis/pesimis untuk mencapai pengasingan transaksi untuk mengelakkan ketidakkonsistenan data.

Apa itu EJB? EJB ialah spesifikasi Java Platform, Enterprise Edition (JavaEE) yang mentakrifkan satu set komponen untuk membina aplikasi Java kelas perusahaan sebelah pelayan. Komponen EJB merangkumi logik perniagaan dan menyediakan satu set perkhidmatan untuk mengendalikan urus niaga, konkurensi, keselamatan dan kebimbangan peringkat perusahaan yang lain. EJB Architecture Seni bina EJB merangkumi komponen utama berikut: Enterprise Bean: Ini adalah blok binaan asas komponen EJB, yang merangkumi logik perniagaan dan data berkaitan. EnterpriseBeans boleh menjadi stateless (juga dipanggil session beans) atau stateful (juga dipanggil entity beans). Konteks sesi: Konteks sesi menyediakan maklumat tentang interaksi klien semasa, seperti ID sesi dan klien

Dengan aplikasi Java yang meluas, ralat JDBC sering berlaku apabila program Java menyambung ke pangkalan data. JDBC (JavaDatabaseConnectivity) ialah antara muka pengaturcaraan dalam Java yang digunakan untuk menyambung ke pangkalan data Oleh itu, ralat JDBC ialah ralat yang dihadapi apabila program Java berinteraksi dengan pangkalan data. Berikut ialah beberapa ralat JDBC yang paling biasa dan cara menyelesaikan dan mengelakkannya. ClassNotFoundException Ini adalah JDBC yang paling biasa

1. Prasyarat untuk pengaturcaraan pangkalan data Bahasa pengaturcaraan, seperti Java, C, C++, Python dan pangkalan data lain, seperti Oracle, MySQL, SQLServer dan pakej pemacu pangkalan data lain: Pangkalan data yang berbeza menyediakan pakej pemacu pangkalan data yang berbeza yang sepadan dengan bahasa pengaturcaraan yang berbeza : MySQL menyediakan pakej pemacu Java mysql-connector-java, yang diperlukan untuk mengendalikan MySQL berdasarkan Java. Begitu juga, untuk mengendalikan pangkalan data Oracle berdasarkan Java, pakej pemacu pangkalan data Oracle ojdbc diperlukan. 2. Pengaturcaraan pangkalan data Java: JDBCJDBC, JavaDatabaseConnectiv
