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

Manajemen transaksi dengan DAO

Jika Anda menggunakan JDBC biasa, yang dapat Anda lakukan adalah membagikan instance Connection yang sama dalam dua contoh kelas DAO.

public class EmployeeDAO {

    private Connection conn;

    public void setConnection(Connection conn) {
        this.conn = conn;
    }

    ...
}

public class BankDAO {

    private Connection conn;

    public void setConnection(Connection conn) {
        this.conn = conn;
    }

    ...
}

Dalam kode klien, pertama-tama Anda perlu membuat Connection contoh objek. Selanjutnya, Anda perlu memulai transaksi, dengan conn.setAutoCommit(false); . Lewati Connection instance objek ke kedua kelas DAO. Jika tidak ada kesalahan yang terjadi dalam operasi apa pun, conn.commit(); , jika tidak, conn.rollback();

misalnya:

Connection conn = null;
try {
    // getConnection from pool

    conn.setAutoCommit(false);

    EmployeeDAO employeeDAO = new EmployeeDAO();
    employeeDAO.setConnection(conn);

    BankDAO bankDAO = new BankDAO();
    bankDAO.setConnection(conn);

    // save employee

    // save bank details

    conn.commit();

catch(Exception e) {
    if (conn != null) {
        conn.rollback();
    }
} finally {
    if (conn != null) {
        conn.close();
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana mysql memasukkan jutaan catatan lebih cepat?

  2. Dua kueri mysql dalam satu objek json

  3. CakePHP:Membuat baris HABTM baru alih-alih memperbarui yang lain

  4. Masukkan data jika jumlah baris lebih besar dari 0 tidak berfungsi

  5. Menggunakan Koneksi Persisten PHP-MySQL untuk Menjalankan Blog WordPress