DAO na prática

3 respostas
from_sp_br

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.

3 Respostas

insonix

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.

from_sp_br

10 . muito obrigado cara.

Emerson_Macedo

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.


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
}
Criado 24 de julho de 2008
Ultima resposta 25 de jul. de 2008
Respostas 3
Participantes 3