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.
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)
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);