ArrayList

5 respostas
simberg

Estou fazendo uma ArrayList com generics para uma classe, por exemplo:

public List<Contato_aluno>getList_a() throws SQLException{
.
.

Essa classe Contato_aluno é um javabean dos itens de uma tabela.

Tá funcionando perfeitamente, tudo em MVC.

Como faço para fazer uma lista para duas classes diferentes, a fim de acessar duas tabelas diferentes? Uma consulta acessando duas tabelas?

5 Respostas

luistiagos

pelo que me parece o que vc precisa é fazer um Join… isto vc faz em sua propria String query… mas seja mais especifico que tabelas vc tem e que tabelas quer unir e qual a relação entre elas? 1 p 1, 1 p n ou n p n?

C

Olá, caso essas tabelas não tenham relacionamento nenhum você pode criar uma nova classe, contento os dois objetos:

public class UnindoTabelas{
private ContatoAluno ca;
private ContatoProfessor cp;

... getters e setters

}

E criar uma Lista da classe UnindoTabelas…

simberg

Elas já tem relacionamento no PostGreSQL, um para vários.

Tenho as classes para cada tabela separada.

Quero apenas uma listagem, com um relacionamento em SQL entre as duas, estava pensando em fazer uma classe com os dados das duas.

Deixa eu explicar melhor:

Fiz uma lista para os orientadores, e depois para os alunos, como está abaixo:


public List<Contato_orientador>getLista_o() throws SQLException{

PreparedStatement stmt=this.connection.prepareStatement(SELECT * FROM orientador order by orientador.nome_orientador);

ResultSet rs=stmt.executeQuery();
List<Contato_orientador> list_o=new ArrayList<Contato_orientador>();
	while(rs.next()){
		Contato_orientador contato_o=new Contato_orientador();
		contato_o.setCod_orientador(rs.getInt("cod_orientador"));
		contato_o.setDepto(rs.getInt("depto"));
		contato_o.setLinktea(rs.getString("linktea"));
		contato_o.setNome_orientador(rs.getString("nome_orientador"));
		
		list_o.add(contato_o);
	}
	rs.close();
	stmt.close();
	return list_o;

mas quero uma lista que pegue informações de duas tabelas, já relacionadas, usando o SQL:
tipo assim:

PreparedStatement stmt=this.connection.prepareStatement(“SELECT orientador.*, departamentos.descricao FROM departamentos inner join orientador on orientador.depto =departamentos.cod_depto order by orientador.depto, orientador.nome_orientador”);

Nesse caso estou acessando duas tabelas orientador e departamentos, como usar o ArrayList para isso. Tiro o generics, ou faço como sugerido, crio outra classe com essas duas tabelas?

Qual a melhor forma ?

Giulliano

você poderia criar tanto a classe mencionada acima como criar uma List de Objects que englobaria qualquer classe…

List<Object> listaDupla();

ou ainda

List<?> listaDupla();

quando vc for resgatar os beans vc precisaria dar um cast do seu bean…

seu eu fosse vc criaria outra classe…fica mais elegante…

mas fica ae a seu cargo

[/]'s

simberg

Criei uma outra classe mesmo.

Funcionou!!

Valeu!

Criado 6 de agosto de 2007
Ultima resposta 6 de ago. de 2007
Respostas 5
Participantes 4