Turma, vejam este método:
public Object[][] consultaLancamentos(int matricula){
ResultSet rst = conexaoOracle.consultaLancamentos(matricula);
int numColunas = rotulos.length;
int numLinhas = 0;
int contaLinhas = 0;
try{
while(rst.next()){
numLinhas++;
}
} catch(SQLException ex){
ex.printStackTrace();
}
Object dados[][]= new Object[numLinhas][numColunas];
try{
rst.beforeFirst();
while(rst.next()){
for(int c=0; c<numColunas; c++){
dados[contaLinhas][c] = rst.getString(c+1);
}
contaLinhas++;
}
rst.close();
} catch (SQLException ex){
ex.printStackTrace();
}
return dados;
}
Este Object dados retornado eu uso pra preencher um JTable. Está funcionando beleza, só achei que ficou um chuncho meio feio a parada de correr os registros uma vez só pra saber quantas linhas vieram no resultset, neste trecho:
try{
while(rst.next()){
numLinhas++;
}
} catch(SQLException ex){
ex.printStackTrace();
}
… e depois posicionar antes do primeiro registro e lê-los novamente. Procurei algum método de ResultSet que me desse a quantidade de linhas retornadas, mas não achei. A sábia opinião dos bambas será bem vinda!!