Procurando uma saida, count em tabela?

Como faço para realizar um count em uma tabela, quero retornar, o total de registros que tem na tabela e jogar em uma variável, assim fico sabendo quantas linhas tem minha tabela.

fiz assim:

Statement stamt = conn.createStatement();
ResultSet rst = stamt.executeQuery(“SELECT COUNT(COD_BRICK) FROM REGIOES”);

String count = rst.getString(“COD_BRICK”);
System.out.println(count);

mas dá o erro:
Falha no SQL,
java.sql.SQLException: Column not found
java.sql.SQLException: Column not found
at sun.jdbc.odbc.JdbcOdbcResultSet.findColumn(JdbcOdbcResultSet.java:152
7)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:271)

    at normalizacao_regiao.main(normalizacao_regiao.java, Compiled Code)

um abraço.
no aguardo.

O erro ocorre porque quando vc faz a consulta “SELECT COUNT(COD_BRICK) FROM…” o nome da coluna devolvida no resultado não será “COD_BRICK”. Eu nao sei ao certo qual nome vc deve usar. Mas há um outro jeito de pegar os valores das colunas.

Ao invés de usar a operacao: rs.getString(“nome da coluna”), vc pode usar a operacao rs.getString(indice da coluna).

Por exemplo, se vc tiver a seguinte consulta “SELECT nome, endereco FROM usuario”, na hora que vc for iterar pelo ResultSet vc podera pegar o nome chamando a operação rs.getString(1) e o endereço chamando rs.getString(2).

Só que no caso do COUNT especificamente, se vc fizer rs.getString(1) vai continuar dando pau, pois o resultado do count é tipo inteiro e nao string, entao para que o codigo funcione sem problemas o seu codigo deve ficar assim:

Statement stamt = conn.createStatement(); 
ResultSet rst = stamt.executeQuery("SELECT COUNT(COD_BRICK) FROM REGIOES"); 

// Nao esquecer tb de chamar o rs.next()
// Note que vc nao precisa fazer um while, 
// pois sabemos que a resposta da consulta
// tem apenas uma linha!
rst.next();

int count = rst.getInt(1); 
System.out.println(count); 

Uma outra maneira eh fazer assim:

SELECT COUNT(nome_da_coluna) AS total FROM tabel_name

e entao pegar o valor da coluna “total”.

[]'s
Rafael Steil

só complementando vc também pode usar um alias para a coluna, por exemplo:

[code]Statement stamt = conn.createStatement();
ResultSet rst = stamt.executeQuery(“SELECT COUNT(COD_BRICK) TOTAL FROM REGIOES”);

int count = rst.getString(“TOTAL”);
System.out.println(count);
[/code]

Valeu galera, funcionou legal.

Até daqui a pouco, pois pintarão outras dúvidas, peguei outra pedreira.

Um abraço.