Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

MVC + Service Layer + Dao: Melhor prática

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

2 respostas
solução!

Oi Allan, em geral vc vai colocar esse código no ponto do sistema onde vc vai instanciar seus daos.. Pode ser na camada de serviço sim. Apesar que quando vc for evoluindo, e aprender coisas como Spring ou CDI, vc vai ver que esse código vai ficar super encapsulado.. o framework vai cuidar dele para vc.

Muito Obrigado Alberto