Pessoal na verdade não tenho bem dúvida, é mais uma discussão mesmo. Levando em consideração que um DAO possui todos os métodos que interagem com aquela entidade recebendo uma conexão externa, que pode ser oracle, mysql, postgresql etc.. Aonde vocês colocam, como boa prática a passagem dessa conexão para esse DAO. Por exemplo:
public static void main(String[] args) throws SQLException {
Produto mesa = new Produto("Mesa Roxa", "Mesa Roxa com 4 pés");
try (Connection con = new ConnectionPool().getConnection()) {
ProdutosDAO dao = new ProdutosDAO(con);
dao.salva(mesa);
List<Produto> produtos = dao.lista();
for (Produto produto : produtos) {
System.out.println("Existe o produto: " + produto);
}
}
}
Nos exemplos do curso o trecho:
try (Connection con = new ConnectionPool().getConnection()) {
Está no pacote main, mas sabemos que em aplicações maiores teremos uma camada de view, modelo, controle e DAO. Minha pergunta é, se a idéia é manter sempre um baixo acoplamento, aonde é melhor colocar o try da Connection sendo que eu terei que trocá-lo de uma base para outra? Uma cada de serviço seria a melhor prática?
Obrigado