Consulta não está retornando! PQ?

Minha consulta teria q retornar um vector com os dados do banco, mas qd chamo o metodo nao retorna, o tamanho do vector retornado é 0.

public Vector listarProf() { int[] alelo = new int[2]; Vector dados = new Vector(); try { String sql = "select CodProfessor, CodDisciplina from Professores"; Statement s = this.can.createStatement(); ResultSet rs = s.executeQuery(sql); int nLinhas = rs.getRow(); while(rs.next()) { for(int i=0; i<nLinhas; i++){ alelo[0] = rs.getInt(1); alelo[1] = rs.getInt(2); dados.add(alelo); } } } catch(Exception e) { System.out.println("Erro listarProfessor: " + e); } return dados; }

Chamada do método, imprime 0

Vector P = new Vector(); aplicacao.setConectar(driver, url, login, senha); P = aplicacao.listarProf(); int x =0; x = P.size(); System.out.println(x);

Não dá nenhum erro, só que imprime “0”, a conexão com o banco ta certa, os dados estão na tabela certa tb!

Tente depurar o código…

Vc naum precisa desta linha “int nLinhas = rs.getRow();”
pq o “while(rs.next())” já percorre as linhas pra vc, não precisando
percorre-lo em "for(int i=0; i<nLinhas; i++){ "
trente assim:

        while(rs.next())  
        {  
            alelo[0] = rs.getInt(1);   
            alelo[1] = rs.getInt(2);  
            dados.add(alelo);
         }  

Você pode tentar tbm:


alelo[0]  = rs.getInt("codProfessor");
alelo[1]  = rs.getInt("CodDisciplina");

flw!![]'s

Utilize o código que o Cabazzo postou…

O que eu acho que pode estar acontecendo…

Quando vc escreve

int nLinhas = rs.getRow();   

Pelo que entendi você gostaria de saber quantos registros tem o rs.
Porém rs.getRow() irá lhe retorar a linha corrente, ou seja 0 (creio eu).

Entaum quando faz o codigo

for(int i=0; i<nLinhas; i++)

Ele naum executa nada… pois vai de 0 a 0

Espero ter ajudado

Abraços

Fora que você precisa de um array bidimensional para armazenar corretamente as informações que vc quer.

Não se ofenda, é apenas uma dica, mas recomendo fortemente vc estudar conceitos de programação(algoritmos, OO e por aí vai).

Por esse seu código, deu pra ver que falta isso pra vc.

Como eu disse, não se ofenda, faça isso apenas se quiser evoluir como programador.

[]'s