Como armazenar o número de registros de uma tabela?

Olá pessoal…

Gostaria de saber como faço pra armazenar o número de registros de uma tabela…

Sei que a sintaxe é essa:

SELECT COUNT(*) FROM [Nome da Tabela];

Mas como faço pra guardar esse número em uma variável do tipo int???

Agradeço desde já!

se você já sabe como pegar basta armazenar;

int valor = 0;
Resultset rst = null;

String query = SELECT COUNT(*) FROM [Nome da Tabela];

rst = rst.executeQuery(query);

valor = rst.getInt(1);

[quote=surfzera]se você já sabe como pegar basta armazenar;

int valor = 0;
Resultset rst = null;

String query = SELECT COUNT(*) FROM [Nome da Tabela];

rst = rst.executeQuery(query);

valor = rst.getInt(1);[/quote]


Não funcionou!!!

Meu caso é o seguinte, eu tenho que montar um vetor em tempo de execução
com os nomes cadastrados de uma tabela chamada ‘CURSO’

Seria assim:

Connection con = Conexao.getConnection();

String sql = "SELECT COUNT(*) FROM curso";
			
Statement st = (Statement) con.createStatement();
		
ResultSet rs = (ResultSet) st.executeQuery(sql);
			
int valor = rs.getInt(1);
			
String listaDeCursos[] = new String[valor];
			
int k = 0;
			
sql = "SELECT * FROM curso";

st = (Statement) con.createStatement();
			
rs = (ResultSet) st.executeQuery(sql);
			
while(rs.next()){
				
	listaDeCursos[k] = (rs.getString("nome"));
				
        k++;
				
}
			
			
			
	for(int i = 0; i < valor; i++){
				
		System.out.println(listaDeCursos[i]);
				
	}

Mas não tá dando certo!!!

passa o nome da coluna que vc quer pegar o valor
no seu caso vai ser

int qtde = rs.getInt("COUNT");

Valeu pelos posts, mas nenhum resolveu, então fiz de uma forma menos ‘formal’:

[code]
Connection con = Conexao.getConnection();

String sql = “SELECT * FROM curso”;

Statement st = (Statement) con.createStatement();

ResultSet rs = (ResultSet) st.executeQuery(sql);

int valor = 0;

while(rs.next()){

valor++;

}[/code]

[quote=jonhzihnhoOo]Valeu pelos posts, mas nenhum resolveu, então fiz de uma forma menos ‘formal’:

[code]
Connection con = Conexao.getConnection();

String sql = “SELECT * FROM curso”;

Statement st = (Statement) con.createStatement();

ResultSet rs = (ResultSet) st.executeQuery(sql);

int valor = 0;

while(rs.next()){

valor++;

}[/code]

[/quote]

Se vc fize isso aqui pode te certeza que vai funciona
o que vc fez é uma má pratica de programação faz isso:

Connection con = Conexao.getConnection();

String sql = "SELECT COUNT(*) AS TOTAL FROM curso";
			
Statement st = (Statement) con.createStatement();
		
ResultSet rs = (ResultSet) st.executeQuery(sql);
			
if (rs.next()){
    int valor = rs.getInt("TOTAL");
}

não deve te funcionado antes no post que eu dexei
pq toda vez antes de pegar o valor do resultSet vc
tem que verificar se veio algum valor usando o

if (rs.next())
//ou caso precisa fazer um laço de repetição use um while

Vinny vlw msm…

Agora funcionou perfeitamente!!! :slight_smile:

Mas fiquei com duas dúvidas agora:

1 - Nesse caso, qual a diferença entre

String sql = "SELECT COUNT(*) FROM curso";  

e

String sql = "SELECT COUNT(*) AS TOTAL FROM curso";  

O que AS TOTAL tem de diferente???

e 2- Porque vc passou justamente o TOTAL como parâmentro
do argumento posterior??

if (rs.next()){  
    int valor = rs.getInt("TOTAL");  
}

Agradeço desde já

A Unica diferença entre os 2 é que em um
vc renomeio o nome da coluna para TOTAL usando o AS

se não coloca o AS TOTAL
tb vai funcionar so que vc vai ter que
pegar o valor da coluna pelo nome de COUNT