Oi.
pepper wrote:
Como fazer SELECTs com clausulas WHERE em DAOs?
a. Deve haver um SELECT para cada campo da tabela;
b. SELECTs apenas para campos que interessam em pesquisas;
c. Não devem haver SELECTs, mas sim filtragem da lista devolvida pelo SELECT de tudo.
Filtragem da lista devolvida não é muito eficiente. O melhor é trazer do banco apenas os resultados da consulta. Fazer um select para cada campo não é muito viável também. Das alternativas que você colocou, a melhor é a b.
pepper wrote:
E SELECTs que consideram mais de um campo da tabela?
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.
pepper wrote:
Como proceder com DAOs que devem conter outros DAOs, por exemplo um 'vendedor' ao qual pertencem vários 'pedidos'?
Não faça composição de DAOs: mantenha apenas um DAO por entidade. Eles devem ser utilizados em conjunto em uma camada superior.
pepper wrote:
Onde fechar a conexão do banco de dados para os DAOs ensinados na apostila da Caelum fj-21?
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.