Problemas com arraylist

3 respostas
P

Boa noite a todos!

Estou com problemas no arraylist de um trabalho de faculdade. É o seguinte, estou com o seguinte código.

public ArrayList<ModeloPessoa> listaFornecedor(){
		
		ArrayList<ModeloPessoa> arrayFornecedor = new ArrayList<ModeloPessoa>();
		ModeloPessoa p = new ModeloPessoa();
		int i = 0 ;
		
		try {
			ResultSet rsPessoa = stm.executeQuery("select * from Pessoa where E_Fornecedor =" + 1);

			while(rsPessoa.next()){
				p.setNome(rsPessoa.getString("Nome"));
				p.setEndereco(rsPessoa.getString("Endereco"));
				p.setCidade(rsPessoa.getString("Cidade"));
				p.setUF(rsPessoa.getString("UF"));
				p.setTelefone_Fixo(rsPessoa.getString("Telefone_Fixo"));
				p.setTelefone_Celular(rsPessoa.getString("Telefone_Celular"));
				p.setCPF_CNPJ(rsPessoa.getString("CPF_CNPJ"));
				
				arrayFornecedor.add(p);
				//System.out.println(""+arrayFornecedor.get(0).getNome());
				//System.out.println(rsPessoa.getString("Nome"));
				//System.out.println(arrayFornecedor.get(i).getNome());
				//i++;
			}
			
			//for (i = 0; i < 3; i++){
				System.out.println(arrayFornecedor.get(0).getNome());
			//}
			
			return arrayFornecedor;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return arrayFornecedor;
	}

Sempre que adiona um novo item, ele sobrescre os anteriores com o último registro. Ni final das contas fico com um arraylist com todos registros iguais ao último. Podem me ajudar?

3 Respostas

J113

Ponha a linha

ModeloPessoa p = new ModeloPessoa();

dentro do bloco while.

Abraço.

P

Quem sabe, sabe! Problema resolvido. Muito obrigado!

pedroroxd

Hehe
Só explicando:
É porque voce colocou o " ModeloPessoa p = new ModeloPessoa(); " lá em cima.
Se você declarasse como publica e static, poderia ficar lá mesmo, mas no seu caso não seria uma boa idéia.

Mas como você disse que foi resolvido, vá ao primeiro post, clique em editar, e acresente [RESOLVIDO] depois do assunto do tópico.
Flws!

Criado 13 de novembro de 2009
Ultima resposta 14 de nov. de 2009
Respostas 3
Participantes 3