Já faz algum tempo que venho estudando a apostila de java para web da Caelum, durante o tempo que estudei o capítulo de JDBC anotei algumas dúvidas e não encontrei respostas para elas na internet. Gostaria de saber se podem me ajudar:
O DAO mapeia um objeto em uma ou mais tabelas no banco de dados.
Vc deveria usar o DAO da forma que fizer mais sentido. Expor todo o Banco de dados pode ser desnecessário até pq vc tem particularidades em um Banco que não tem no mundo OO.
Agora…
Como fazer SELECTs com clausulas WHERE em DAOs?
Aqui o seu DAO usa jdbc e queries sql de forma explicita. Eu diria que depende, porém gerar o sql que retorna o que vc quer é util em boa parte, senão todos, dos casos. Agora imagine que o seu DAO usa Hibernate…
Essa pergunta eu não entendi direito. Mas o ideal é você recuperar todos os campos da entidade para que o objeto correspondente ao registro não fique inconsistente.
Não faça composição de DAOs: mantenha apenas um DAO por entidade. Eles devem ser utilizados em conjunto em uma camada superior.
DAOs não devem abrir nem fechar conexões, tampouco transações. Injete as conexões no DAO, e antes de utilizá-lo certifique-se que existe uma transação em andamento. Dessa forma você pode usar vários DAOs na mesma transação.