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á!
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!!!
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