public class ProdutosDAO {
private final Connection con;
ProdutosDAO() {
con = Database.getConnection();
}
// resto do DAO aqui
}
public class ProdutosDAO {
private final Connection con;
ProdutosDAO() {
con = Database.getConnection();
}
// resto do DAO aqui
}
Rafael, bom dia. O problema dessa abordagem é que cada recurso terá sua própria conexão, não sendo possível realizar uma operação transacional.
Pelo que eu entendi, a grande vantagem de se receber a conexão no construtor (DI, corrijam-me se eu estiver errado), é ter algo do tipo:
...
try(Connection conexao = new ConnectionFactory().recuperarConexao()) {
ProdutoDAO produtoDAO = new ProdutoDAO(conexao);
CategoriaDAO categoriaDAO = new CategoriaDAO(conexao);
}
...
E, já que agora as duas compartilham do mesmo recurso (conexão), qualquer operação feita através dessas referências pode fazer parte de uma mesma transaction.
Obrigado Caio e Joao, no decorrer do curso eu compreendi o motivo.