Problema de escopo em Resultset e consulta a BD

3 respostas
snnangola

Boa tarde. Tentei procurar pelo forum um problema parecido, e parece que nao existe. Ando com um problema de nao conseguir retornar uma Lista. Desconfio que seja um problema de escopo por causa do bloco while dentro do bloco try:

public List<DadosPessoais> todosDadosPessoais() throws Exception
    {
        
       
            Statement st                              = null;
            ResultSet rs                              = null;

            Integer codigoDadosPessoais               = null;
            String nomeDadosPessoais                  = null;
            String estadoCivil                        = null;
            String filiacaoPai                        = null;
            String filiacaoMae                        = null;
            String dataNascimento                     = null;
            String naturalidade                       = null;
            String nacionalidade                      = null;
            String documentoIdentificacao             = null;
            String tipoDocumentoIdentificacao         = null;
            String numeroDocumentoIdentificacao       = null;
            String dataEmissaoDocumentoIdentificacao  = null;
            String entidadeLocalEmissao               = null;
            String numeroContribuinteFiscal           = null;
            String reparticaoFinancas                 = null;
            String grauInstrucao                      = null;


          // Aqui vai a lista         
            
            List dadosPessoaisLista = new ArrayList();
        
       // segue o bloco try

        try
        {
            
            
            
            con = Conexao.getConnection();
            st = con.createStatement();
            rs = st.executeQuery("SELECT * FROM dadospessoais");
            DadosPessoais dadosPessoais;

           // enquanto for verdade
            
            while (rs.next())
            { 
            
            
            codigoDadosPessoais = rs.getInt("id_dadospessoais");
            nomeDadosPessoais = rs.getString("nomeDadosPessoais");
            estadoCivil = rs.getString("estado_civil_dados_pessoais");
            filiacaoPai = rs.getString("filiacao_pai_dados_pessoais");
            filiacaoMae = rs.getString("filiacao_mae_dados_pessoais");
            dataNascimento = rs.getString("data_nascimento_dados_pessoais");
            naturalidade = rs.getString("naturalidade_dados_pessoais");
            nacionalidade = rs.getString("nacionalidade_dados_pessoais");
            documentoIdentificacao = rs.getString("documento_identificacao_dados_pessoais");
            tipoDocumentoIdentificacao = rs.getString("tipo_documento_identificacao_dados_pessoais");
            numeroDocumentoIdentificacao = rs.getString("numero_documento_identificacao_dados_pessoais");
            dataEmissaoDocumentoIdentificacao = rs.getString("data_emissao_documento_identificacao_dados_pessoais");
            entidadeLocalEmissao = rs.getString("entidade_local_emissao_dados_pessoais");
            numeroContribuinteFiscal = rs.getString("numero_contribuinte_fiscal_dados_pessoais");
            reparticaoFinancas = rs.getString("reparticao_financas_dados_pessoais");
            grauInstrucao = rs.getString("grau_instrucao_dados_pessoais");


           // Chamo o construtor e atiro os valores para os sets
            
            dadosPessoais = new DadosPessoais(codigoDadosPessoais, estadoCivil, filiacaoPai, filiacaoMae, dataNascimento, naturalidade, nacionalidade, documentoIdentificacao, tipoDocumentoIdentificacao, numeroDocumentoIdentificacao, dataEmissaoDocumentoIdentificacao, entidadeLocalEmissao, numeroContribuinteFiscal, reparticaoFinancas, grauInstrucao);

         // em seguida preencho a lista
           
            dadosPessoaisLista.add(dadosPessoais);
         
        // passa a proxima iteraccao           


            }
            
         
           
            
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
        }

          // aqui retorno a lista preenchida. seria suposto retornar. Mas esta lista retorna vazia pelos testes que realizei
       
        return dadosPessoaisLista;


    }

Fiz uns testes. Preenchi a lista estaticamente, antes do bloco try e ja nao retornava 0 (pelos testes que fiz retorna 0 com dadosPessoaisLista.size())

Esta uma coisa meio estranha. Ja trabalhei deste modo antes e nao tive problemas.

Sera que alguem me pode dar uma ajuda?

3 Respostas

cristianonasciment

o seu método está esperando retornar uma lista de dados pessoais: public List<DadosPessoais>
e qdo vc está criando a lista, não está usando generics.
tenta assim:

List<DadosPessoais> dadosPessoaisLista = new ArrayList<DadosPessoais>();

snnangola

Ola. Ja havia tentado. Mesmo assim continua a nao retornar nada. que estranho.

snnangola

O problema foi resolvido. era um problema da variavel nomeDadosPessoais = rs.getString(“nomeDadosPessoais”); que nao foi passada ao construtor. Comente e ja retorna a lista.

Criado 1 de dezembro de 2010
Ultima resposta 1 de dez. de 2010
Respostas 3
Participantes 2