Quando Criar um DAO?

Fala Javeiros,
estou com a seguinte dúvida existe algum criterio para se criar DAOs ou algo como quando usar e quando não usar ?

Sim, existe. DAO é um pattern, e como todo pattern ele tem uma definição de problema e solução específica onde é aplicável.

Data Access Object

Cara, vai muito do seu projeto e do seu ponto de vista.

Cara eu possuo uma unica classe para insert, delete, etc… e gostaria de separar isto em DAOs:

exemplo:
PessoaDao, UsuarioDao

isto é aceitavél ?

É sim, mas sugiro dar uma olhada no Pattern Abstract Factory também.

Como disse o colega Dirceu, vai muito da sua percepção, por ex: Digamos que você queira abstrair completamente sua persistência (Hibernate, Ibatis, JDBC, OJB), você pode criar alguns contratos que atenderia a sua camada de negócios, seja ela uma service ou transaction.
Tome muito cuidado e seja cauteloso na decisão por este padrão, pois se o seu projeto não precisar fazer uso dele (digamos que seu sistema seja completamente em JDBC), você terá muito mais trabalho e não vai fazer uso de um dos propósitos principais do padrão :wink:

Later!

aspirante, o projeto é completamente em JDBC então qual padrão devo usar ?, devo colocar todos os meus sqls(insert, delete, update) dentro de uma unica classe ?

naum precisa ser dentro de uma única classe…

Vc vai juntar em uma classes acessos ao banco de dados que sejão comum entre eles.

Por exemplo, se vc tiver um objeto Aluno, vc poderá criar por exemplo uma classe chamada AlunoDAO, que conterá métodos como create, delete, remove, findAll, findByPrimaryKey, findByName e por ai vai!

Abraços!
Thiago

Thiago, antes de mudar para o padrão DAO os meus acessos ao BD via JDBC eram feitos em uma unica classe (createPessoa, createAluno, createProfessor) tudo em uma unica classe e com isso a minha classe estava ficando grande e confusa, por isso resolvi mudar para DAO porém o aspirante falou:

[quote]
Tome muito cuidado e seja cauteloso na decisão por este padrão, pois se o seu projeto não precisar fazer uso dele (digamos que seu sistema seja completamente em JDBC), você terá muito mais trabalho e não vai fazer uso de um dos propósitos principais do padrão[/quote]

Quais são os reais perigos que esta mudança pode me trazer ?, existe algum outro padrão que substitua o DAO ?

curio,

Bem, uma unica classe para fazer toda a persistencia, de acordo com a sua descricao, nao é legal. (Alguns defendem daos genericos com hibernate, mas nao vem ao caso…)

Então, sugiro que voce aplique DAO a esse seu problema. Vai cair bem.

Ah, e como vc tá trabalhando com JDBC puro, recomendo que voce coloque as querys em um arquivo separado, como ensina este artigo

Eu defendo :mrgreen:

Eu defendo :mrgreen: [/quote]

O que vocês chamam de daos genéricos com hibernate?