Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara menjalankan 2 kueri pembaruan dalam satu transaksi dengan JDBC

Jika Anda ingin mengeksekusi beberapa pernyataan secara atom, Anda perlu menggunakan transaksi. Koneksi JDBC default ke mode 'auto-commit', yang berarti setiap pernyataan dieksekusi dalam transaksinya sendiri. Jadi Anda harus terlebih dahulu menonaktifkan mode komit otomatis, menggunakan Connection.setAutoCommit(false) .

Dengan mode komit otomatis dinonaktifkan, pernyataan yang dieksekusi akan dieksekusi dalam transaksi saat ini, jika tidak ada transaksi saat ini, satu akan dimulai. Transaksi ini kemudian dapat dilakukan menggunakan Connection.commit() atau digulung kembali menggunakan Connection.rollback() .

Anda perlu melakukan sesuatu seperti:

try (Connection connection = DriverManager.getConnection(...)) {
    connection.setAutoCommit(false);
    try (Statement stmt = connection.createStatement()) {
        stmt.executeUpdate(<your first update>);
        stmt.executeUpdate(<your second update>);

        connection.commit();
    } catch (SQLException e) {
        connection.rollback();
        throw e;
    }
}

Untuk detail selengkapnya, lihat bab tutorial JDBC Menggunakan Transaksi .

Dan tolong pelajari tentang pernyataan yang disiapkan. Menggabungkan nilai ke dalam string kueri adalah buruk, karena dapat menyebabkan injeksi SQL atau kesalahan aneh jika Anda lupa mengecualikan nilai. Lihat juga bab tutorial JDBC Menggunakan Pernyataan yang Disiapkan .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gabungkan dua kueri untuk memeriksa duplikat di MySQL?

  2. 10 praktik terbaik teratas di MySQL

  3. Sekuel Kueri untuk menemukan semua catatan yang berada di antara rentang tanggal

  4. Temukan string duplikat di database

  5. Bagaimana cara kerja indeks MySQL?