Problemas com o retorno do Resultset

6 respostas
Klark
Ola, estou com um problema no retorno do resultset, que fiz retornar o select de toda uma tabela "pessoa", eu busco no Sql tudo o que tem nesta tabela e para cada objeto construido com o resultado do resultset eu adiciono o mesmo no vetor de retorno, veja meu codigo abaixo:
public Vector tabela (){
      Vector rtno = new Vector();
			Pessoa pessoa = new Pessoa();
      try{
			   PreparedStatement comandoSQL;
			   comandoSQL = Conexao.getInstance().prepareStatement("select * from schema.tabela");
			   ResultSet res = comandoSQL.executeQuery();
         if (res.next()){
				    pessoa.setCod_pessoa(res.getInt("Cod_pessoa"));
				    pessoa.setNome(res.getString("Nome"));
				    pessoa.setDt_Nascimento(res.getString("Dt_Nasc"));
				    pessoa.setRegistro(res.getInt("registro"));
            pessoa.setSexo(res.getString("Sexo"));
            pessoa.setDt_Inclusao(res.getString("Dt_Inclusao"));
            pessoa.setCpf(res.getString("Cpf"));
            pessoa.setVlrCota(res.getFloat("VlrCota"));
            rtno.add(pessoa); 
            
         }
      }catch (SQLException e) {
			   e.printStackTrace();
      }
      return rtno;

   }
So que quando eu chamo esse metodo ele me da um erro dizendo que os tipos de dados sao imcompativeis, veja como eu chamo o resultado no codigo abaixo:
public void desenhaTabela(){
	    PessoaDAO pessoaDAO = new PessoaDAO();
			Pessoa pessoa = new Pessoa();
			Vector aPessoa;
      aPessoa = pessoaDAO.tabela();
      for (int i=0 ;i<aPessoa.size();i++){
         pessoa = aPessoa.elementAt(i); 
         System.out.println(pessoa.getClass());        
      }
      
   }

6 Respostas

thiago.correa

coloca o stack trace aí, de repente o erro não está acontecendo aí e sim quando você está percorrendo o result set

Klark

Ola, colocar o stack trace aonde, voce quer dizer para ele dizer o tipo do erro, mas coloca-lo aonde?

T

Isto dá um erro de compilação.

pessoa = aPessoa.elementAt(i);

Isto não dá.

pessoa = (Pessoa) aPessoa.elementAt(i);
Klark

Muito obrigado, era isso mesmo, so que agora ele esta apresentando so o primeiro item do banco.

Andre.flu

coloca o

Pessoa pessoa = new Pessoa();

dentro do

while( rs.next() ){

}

que esta if e não while.

Klark

Obrigado, era isso mesmo, e tambem no for eu mudei pra

for (int i=0 ;i<aPessoa.size();i++){
          pessoa = aPessoa.elementAt(i);
pessoa = aPessoa.elementAt(i+1);

Agora ta mostrando todos os dados.
Valeu muito obrigado pela ajuda.

Criado 10 de outubro de 2006
Ultima resposta 10 de out. de 2006
Respostas 6
Participantes 4