Conexão com o Banco - não imprime os dados na tela

10 respostas
A

PessoALL,

Olhem minha class TestaGerenteDeConexao

ela esta rodando tudo normal.
só não esta me retornando os dados(não imprime os dados na tela).
O que pode estar errado?
meu for aprimorado?
ou o q?

esta saindo o seguinte resultado:

init:
deps-jar:
compile-single:
run-single:
Driver conectado com sucesso
Conexão conectado com sucesso!
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)

package teste;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import persistencia.GerenteDeConexao;
import modelo.Cargo;


public class TestaGerenteDeConexao {


    public static void main(String args[]) {

        Connection conn = GerenteDeConexao.getInstance().GerenteDeConexao();

        ArrayList<Cargo> cargos = new ArrayList<Cargo>();


        if (conn != null) {

            try{
            Statement stm = conn.createStatement();
                System.out.println("Comando criado com sucesso!");
                ResultSet rs = stm.executeQuery("SELECT * FROM cargo");
                System.out.println("Comando execultado com sucesso!");

                        while(rs.next()){
                            Cargo cargo= new Cargo();
                            cargo.setIdCargo(rs.getInt("idCargo"));
                            cargo.setDescricao(rs.getString("descricao"));
                            cargos.add(cargo);
                            
                        }

            }catch (SQLException e){
                System.out.println("Erro de Sql: " + e.getMessage());
            }


        }

        for (Cargo c: cargos)
            System.out.println(c);

    }

}

Abraços

10 Respostas

jayBean

faz tempo que não mexo com isso…

mas tente fazer seu laço assim:

for (Cargo c: cargos){  
  System.out.println("ID: " + c.getIdCargo());
  System.out.println("Descrição: " + c.getDescricao());
}

retorne qualquer coisa :wink:

A

Retornou nãO! =/

Vlw

Jair_Rillo_Junior

Tem valor na tabela CARGO, certo?

Outra coisa, debuge o código para ver se está entrando dentro do WHILE.

jayBean

exatamente, veja se seu laço está pegando os valores da tabela corretamente.

debug nele :wink:

A

Tem valor dentro da tabela cargo!
Eu debuguei mais não sei aonde posso ver se estar entrando ou não no while.
Uso o Netbeans!

alguem pode me ajudar?

jayBean

coloque um ponto de parada uma linha antes do seu laço. (breakpoint)

depois inicie o debug, vc vai ver que o processamento será parado naquela linha, e depois você vai acompanhando, como você usa netbeans, vá usando as setas para verificar o que acontece, após vc atribuir um valor a certa variável, posicione o mouse emcima dela, e aparecerá o valor dela, dê uma olhada pra ver se os valores tão vindo certinhos…

abraço!

felipedamiani

Está entrando aqui?

if (conn != null) {
A

No if esta entrando.
Pois esta saindo as mensagens

Driver conectado com sucesso
Conexão conectado com sucesso!

thiago.correa

Troque a sua clausula catch para

}catch (SQLException e){   
                e.printStackTrace();   
            }

e veja se está acontecendo algum outro erro!

Thiago_Luis

jayBean:
faz tempo que não mexo com isso…

mas tente fazer seu laço assim:

for (Cargo c: cargos){  
  System.out.println("ID: " + c.getIdCargo());
  System.out.println("Descrição: " + c.getDescricao());
}

retorne qualquer coisa ;)

Então, acho que dentro do for deveria ser assim tbm.
Outra coisa, tenta colocar o rs.first():

ResultSet rs = stm.executeQuery("SELECT * FROM cargo"); System.out.println("Comando execultado com sucesso!"); rs.first();//Para o ponteiro do registro ficar na primeira linha. while(rs.next()){
Veja se vai.

Abraço

Criado 22 de maio de 2009
Ultima resposta 23 de mai. de 2009
Respostas 10
Participantes 6