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(*) ?
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!
concordo com o lavh… qm sabe numa próxima versão do java não coloquem… hehe