Si vous utilisez JDBC ordinaire, vous pouvez partager la même instance de Connection
dans les deux instances des classes 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;
}
...
}
Dans le code client, vous devez d'abord créer une Connection
exemple d'objet. Ensuite, vous devez démarrer la transaction, avec conn.setAutoCommit(false);
. Passer la Connection
instance d'objet aux deux classes DAO. Si aucune erreur ne se produit dans aucune opération, conn.commit();
, sinon, conn.rollback();
par exemple :
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();
}
}