Dúvidas com relação a DAO

5 respostas
D

Olá pessoal!!
Tudo certo??

Estou dando uma estudada em DAO, e surgiu algumas dúvidas:

  1. A DAO pode ser chamada pela classe de negócio ou apenas pela classe de controle?
  2. Um sistema possui “vários” DAO’s ou apenas um? Digo isso pq por exemplo, para inserir dependendo da tabela é um código sql, portanto cada classe de “negócio” teria (ou quase sempre) uma classe DAO correspondente?
  3. Eu poderia ter uma classe DAO principal por exemplo para a conexão do BD onde todas as classes “teriam acesso” ao querer se conectar ao banco, mas para fazer as inserções/exclusões/alterações cada uma teria a sua DAO??

A minha forma de pensar está correta ou não?

Agradeço desede já,
Dina

5 Respostas

rogelgarcia
  1. Acho que sua pergunta deveria ser: A DAO pode ser chamada pela classe de controle ou apenas pela classe de negócio?

Eu nas aplicações que eu construo pra mim… costumo chamar de qualquer lugar que necessite… Mas o interessante é chamar de classes de serviço por questoes de organização

  1. Vários… um para cada entidade

  2. Sim… você utilizaria herança para isso… um DAO genérico e todos especificos herdam dele…

rogelgarcia

Nesse site http://www.nextframework.org/site/tutoriais tem um vídeo chamado CRUD…

Talvez ajude a solucionar suas dúvidas…

D

Rogelgarcia,

Muito obrigada pelas respostas!
:slight_smile: E pelo site!

erico_kl

como o amigo já havia falado… também tenho as DAOs mas elas não são acessadas diretamente… mas sim atravéz de classes de serviço…
exemplo da estrutura que utilizo:
business - camada lógica de negócio
database - as DAOs e suas respectivas implementações
service - as classes de serviço que acessam as DAOs e as interfaces que serão extendidas e implementadas no pacote database (DAO e DAOImpl, respectivamente)
view - vizualização…

sergiotaborda

dina:
Olá pessoal!!
Tudo certo??

Estou dando uma estudada em DAO, e surgiu algumas dúvidas:

  1. A DAO pode ser chamada pela classe de negócio ou apenas pela classe de controle?

Não sei o que vc chama de classe de negocio. Existem 3 tipos : entidades, serviços e repositorios. Repositorios servem exactamente
para encaspular a chamada ao DAO, mas serviços tb podem fazer essa chamada.

Tb não sei o que vc chama de classe de controle, suponho que seja algum tipo de action de algum framework web que substitui um servlet.
As actions podem chamar os DAOs, embora não devam. Em tese o DAO é muito baixo nivel, portanto a action deveria chamar um objeto intermédio e esse chamar o DAO. Essas classes intermédias podem ser serviços ou repositorios

Possui vários. normalmente um por entidade.

Poderia, mas não é a melhor opção. A melhor opção é ter uma classe à parte que usada para obter a conexão. Melhor ainda se ela implementar javax.sql.DataSource.

Vc deveria esquecer o DAO. Hoje em dia é um padrão histórico que não deve ser usado na prática a mesmos que vc realmente precise dele.
Hoje em dia, usar um DomainStore é mais prático sobretudo se encapsulado num Repositorio.

Criado 15 de março de 2010
Ultima resposta 16 de mar. de 2010
Respostas 5
Participantes 4