Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Quản lý giao dịch với DAO

Nếu bạn đang sử dụng JDBC thuần túy, những gì bạn có thể làm là chia sẻ cùng một phiên bản của Connection trong hai trường hợp của các lớp 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;
    }

    ...
}

Trong mã máy khách, trước tiên bạn cần tạo một Connection thể hiện đối tượng. Tiếp theo, bạn cần bắt đầu giao dịch với conn.setAutoCommit(false); . Vượt qua Connection cá thể đối tượng cho cả hai lớp DAO. Nếu không có lỗi nào xảy ra trong bất kỳ thao tác nào, hãy conn.commit(); , ngược lại, conn.rollback();

ví dụ:

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. Các kỹ thuật hàng đầu để tránh 'thu thập dữ liệu' từ cơ sở dữ liệu trang web

  2. Cách tạo chức năng gửi lại liên kết email trong Laravel

  3. Cú pháp kích hoạt MySQL 'cập nhật trên cột'

  4. Khóa ngoại nhiều cột trong MySQL?

  5. Vấn đề với việc lưu trữ số lượng lớn trong mysql DB