Conexão SQL

Olá pessoal,
eu estou com uma dúvida aqui
eu posso usar a mesma conexão dessa maneira?

public class SolicitacaoServicoDao {

    private Connection conn;

    public SolicitacaoServicoDao(Connection conn) throws LAFQADaoException {
        this.conn = conn;
    }

    public SolicitacaoServico procurarSolicitacaoServico(int protocolo) throws LAFQADaoException {
            ...
            ProdutorDao produtorDao = new ProdutorDao(conn);
            Produtor produtor = produtorDao.procurarProdutor(idProdutor);

            TecnicoDao tecnicoDao = new TecnicoDao(conn);
            Tecnico tecnico = tecnicoDao.procurarTecnico(idTecnico);

            AmostraDao amostraDao = new AmostraDao(conn);
            List<Amostra> amostras = amostraDao.procurarAmostrasPorProtocolo(protocolo);
            ...
    }
}

Será que alguém pode me dar uma ajuda? :smiley:

[]'s.

pode ! so tem q tomar cuidado na hora que vc for fechar a conexao pq todas as suas daos usam a mesma conexao, alias é uma boa pratica vc usar a mesma conexao para sua aplicacao, vc so controla um gargalo, mas centraliza tudo para nao ter problema de fechar a conexao antes de uma outra classe q possa precisar.

So não pode como muitas vezes é necessario injetar as conexões nas classes DAOs.

Caso vc precise de controle transacional entre os DAOs, é necessario que a conexão seja gerenciada por uma camada acima, uma vez que se seus DAOs abrirem e fecharem a conexão, não será possivel realizar um controle transacional.

O que vc deve é ter cuidado para fechar as conexões, se um Dao fechar a conexão e o proximo for usar. Já era.

Se no final do uso do seus Daos vc não fechar a conexão corretamente, Já era.

O link abaixo explica bem melhor do que eu o que vc quer aprender.
http://www.arquiteturajava.com.br/livro/inversao-de-controle-cade-minha-chave-de-fenda.pdf