Dúvida JSP - Resultado de Join entre tabelas

2 respostas
juliomartini

Pessoal,

É apenas uma dúvida e gostaria de saber se o meu pensamento está correto:
Estou fazendo um sistema simples para a faculdade usando apenas JSP e DAO sem uso de frameworks. Segue um exemplo abaixo para explicar a minha dúvida:

Tenho 02 classes:

ESTADO

cd_estado
dsc_estado

CIDADE

cd_cidade
cd_estado (*)
dsc_cidade

Na página index.jsp preciso retornar a relação das cidades cadastradas + a descrição do estado.

O que tenho hoje:

Na classe CIDADE tenho um método listarCidades que me retorna um VECTOR. Na página index.jsp percorro esse VECTOR e exibo todas as cidades. Mas nele eu não tenho a descrição do estado.

O que pretendo fazer:

No JSP quando eu estiver dentro do for listando as cidades eu pretendo instanciar um outro método na classe ESTADO chamado listarDscEstado onde passaria como parâmetro o código do estado que veio no VECTOR de cidades. Esse método me retornaria uma string que depois seria exibida no JSP.

Minha dúvida:

  1. Essa seria a melhor forma?
  2. E se precisar de um outro campo, terei que criar um método para cada um?? Pq no exemplo acima retorno apenas a descrição do estado, mas se for uma tabela grande com diversas chaves estrangeiras e precisar fazer esse JOIN acho que vai ficar inviável. O que acham??? Qualquer idéia ou ajuda será bem vinda.

Abraços,
Júlio César

2 Respostas

rafagil

Bom, na minha opinião, voce deveria criar uma lista de cidades dentro do estado, pois um estado possui várias cidades:

ficaria assim:

public class Estado
{
    private int cdEstado;
    private String dscEstado;
    private List<Cidade> cidades;

    // getters e setters
}
juliomartini

Se eu criar esse atributo na minha classe estado vai ficar diferente do meu modelo UML. Isso é correto? Pq no modelo tenho que nessa classe vai existir apenas os atributos cd_estado, dsc_estado.

Como que eu trabalharia com essa lista?

Obrigado pela ajuda.

Abraços,
Júlio César

Criado 18 de julho de 2007
Ultima resposta 18 de jul. de 2007
Respostas 2
Participantes 2