Contar linhas de um ResultSet - Help

3 respostas
A

pra saber no número de colunas de um ResultSet eu uso:

int numCols = rs.getMetaData().getColumnCount();

como que eu faço pra saber o número de linhas desse rs ???

3 Respostas

S

Olá,

como(se) você já tem um ResultSet, dá na mesma fazer um loop:

int contador;

while (rs.next())

contador++;

ou usar o método getRow() após um last():

int contador = resultSet.last() ? resultSet.getRow() : 0;

a performance será a mesma. Em ambos os casos, no final das contas, será realizado um loop em todo ResultSet!

Mas se você só quer saber a quantidade de linhas e não for usar o ResultSet para mais nada, com certeza

SELECT count(*) FROM tabela

será muito mais rápido! (para milhares de registros, é claro!. Se for uma tabela de UFs por exemplo, tanto faz)

spier

A

beleza
era isso mesmo… depois de usar:

int numLin = resultSet.last() ? resultSet.getRow() : 0;

eu uso resultSet.first();

e continuo usando o resultSet normalmente.
É que eu vou declarar uma matriz de String, e preciso saber quantas linhas vai ter.

String dadosBD = new String[numLin][numCols];
e insiro os dados nas respectivas posições…

Valeu, até mais

S

Mas é preciso atenção quanto a um rs.first(), que já posiciona no primeiro, normalmente o mesmo que o primeiro rs.next();

para que não pulemos o primeiro registro, devemos fazer

... rs.first(); do { ... } while(rs.next());

ou

... rs.beforeFirst(); while (rs.next() ) { ... }

spier

Criado 29 de setembro de 2004
Ultima resposta 29 de set. de 2004
Respostas 3
Participantes 2