número de registros retornados no select

pessoal, tenho um select e gostaria que ele voltasse pra mim eu um array…

como posso fazer para saber o número de registros encontrados para eu poder setar o tamanho do array?

tenho que fazer um select count(*) ?

SELECT COUNT(*)
FROM Tabela
WHERE condição (se precisar)

com isso vc tem o número de registros

pzeh, mas eh q isso requer mais um select… eh mais uma conexão q faz com o banco, eu queria resumir o processo… tenho como?

kra pq nao faz assim…

class Cliente(){

private nome;
private endereco;

// getter e setter omitidos

}

select nome, endereco from cliente
List lista = new ArrayList();
while (rs.next()){
Cliente cliente = new Cliente();
cliente.nome = rs.getString(“nome”);
cliente.endereco = rs.getString(“nome”);
lista.add(cliente);
}

com isso vc tem um array com dados que necessita certo… dei exemplo usando generics apenas para facilitar os boxing da vida… mas vc pode fazer sem caso nao use o java 5

[]'s

você tem um select que traz os resultados da sua consulta e no mesmo select você quer saber qts registros vem pra setar o tamanho do array…é isso!!!

nops, eu queria saber se existia algum método q me retornasse qts registros foram encontrados na pesquisa…

tipo um rs.count ou algo do tipo, mas se não tem como… paciência… hehehe vamos fazer o java trabalhar

Se vc realmente precisa do número de registros tem o size()

ex:[code]
qryExemplo = “SELECT Nome FROM Cliente”;
qryExemplo.open();

List cli = new ArrayList(qryExemplo.size());

do{
cli.add(qryExemplo.getString(“nome”));
}while(qryExemplo.next());

qryExemplo.close();
[/code]

eh isso msm, só que estou fazendo meu select de outra forma

eh q eu to usando o preparestatement com o parametro executequery e resultset

tenho um size assim também???

ps.executeQuery("SELECT Nome FROM Cliente");
ResultSet rs = ps.executeQuery();
rs.last();
int numLinhas = rs.getRow();

[quote=GustavoLaguna] ps.executeQuery("SELECT Nome FROM Cliente"); ResultSet rs = ps.executeQuery(); rs.last(); int numLinhas = rs.getRow();
[/quote]
Mas… fazendo dessa maneira, vc não tem que se certificar que este result set pode navegar “para trás”? Parece que eu vi algo a respeito disso na API…

Primeiramente, me perdoem se eu falar besteira mas…

na minha opinião não ter um size no rs é um erro! Mas eu imagino que deva ter uma boa razão para isso, afinal, os caras que constroem as APIs do Java não são bobos…

E por que eu acho um erro?

Se você quiser pegar os resultados e jogar num Arraylist, e o seu retorno tiver um número considerável de registros, o ArrayList vai ficar se redimensionando muitas vezes…e isso consome bastante…eu já comprovei!

É claro que isso não mata ninguem tbm…mas ganhar algum tempinho é sempre bom! :smiley:

concordo com o lavh… qm sabe numa próxima versão do java não coloquem… hehe