Boa tarde.
Gostaria de saber como você implementam o Pattern DAO.
Tenho Duvidas com relação a classe que guarda os valores.
Por exemplo, se tenho uma tabela Cidade que se relaciona
com a tabela Estado através do campo UF.
Como implementaria a classe Cidade, contendo um campo UF
ou um objeto do tipo Estado ?
Espero que tenha conseguido expressar bem o problema.
Obrigado.
Boa tarde.
Geralmente eu crio uma classe VO (value object), ou TO(transfer object) vai de cada um.
Crio CidadeVO e EstadoVO
A CidadeVO contem um atributo do tipo EstadoVO, quando carrega o objeto cidade no DAO você também faz um select no EstadoVO e já carrega ele se precisar (tem que ficar atento nestas questões devido performance).
Faço uma classe DAO para cada classe VO, EstadoDAO, CidadeDAO.
Ai implemento as partes de select com o banco, update, etc…
Método por exemplo, selectCidadeById(Long id), que busca as cidades conforme o id passado.
Ou selectCidadesEstado(Long idEstado), retorna todas as cidades do estado.
Este tipo de implementação é basica, você teria que verificar a viabilidade de utilizar algum framework de persistencia, tipo o hibernate por exemplo.
Para projetos pequenos eu gosto de fazer tudo via sql, pois a performance é melhor e é mais simples.
Qualquer dúvida estou a disposição.
10 . muito obrigado cara.
[quote=insonix]
Geralmente eu crio uma classe VO (value object), ou TO(transfer object) vai de cada um.
Crio CidadeVO e EstadoVO
A CidadeVO contem um atributo do tipo EstadoVO, quando carrega o objeto cidade no DAO você também faz um select no EstadoVO e já carrega ele se precisar (tem que ficar atento nestas questões devido performance).
Faço uma classe DAO para cada classe VO, EstadoDAO, CidadeDAO.[/quote]
Nada de VOs/TOs pra esse tipo de coisa. Ao invés disso basta Estado, Cidade. Da uma pesquisada aqui no GUJ sobre esse péssimo hábito.
Respondendo ao autor do tópico, Cidade pode ter um atributo do tipo Estado para representar qual estado aquela cidade pertence.
class Estado {
private String uf;
private String descricao;
// restante da classe
}
class Cidade {
private String nome;
private Estado estado;
// restante da classe
}