Quantos registros há na tabela!?

Boa noite

Qual o método para se saber quantos registros contém numa tabela?! E jogar esse valor pra uma variavel int!!

No php eu faria:

$resultado = mysql_num_rows($query);

No Java tem algo especifico!?

Obrigado

Dependendo da implementação do seu JDBC, um last() e depois um getRow() no seu ResultSet pode resolver. Dê uma olhada em http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html#last()

Você também pode optar por tratar isso no banco, fazendo um select count.

um exemplo do que o #@®®¡$ disse:

resultSet.last(); // vai para o último registro int quantidade = resultSet.getRow(); // pega o número da última linha resultSet.beforeFirst(); // volta o ponteiro para antes do primeiro registro

se vc tiver problema da uma lida aqui

http://java.sun.com/docs/books/tutorial/jdbc/jdbc2dot0/cursor.html

te mais

Muitas vezes você precisa contar os registros para poder dimensionar um array[].

Mas como você sabe existe o ArrayList em Java, e você não precisa pré-dimensionar um ArrayList para poder copiar os dados lidos da tabela.

Tente ver se seu problema já se resolve sem ter de contar os registros. Muitas vezes você não precisa contar.

Vejam meu método, ele não está cadastrando depois que botei esse esquema de vocês:

[code]public void Inserir() {
rs = null;
stm = null;
int cod;
String txt1 = txtData.getText(), txt2 = txtHoraInicio.getText(), txt3 = txtHoraFim.getText();

try {
stm = conn.createStatement();
rs = stm.executeQuery(“SELECT * FROM aulas”);
rs.last();
cod = rs.getRow();
rs.beforeFirst();

int rs1 = stm.executeUpdate("INSERT INTO aulas VALUES(" + cod + ",'" + txt1 + "','" + txt2 + "','" + txt3 + "')");
JOptionPane.showMessageDialog(this, "Dados cadastrados com sucesso!!!");
txtData.setText("");
txtHoraInicio.setText("");
txtHoraFim.setText("");
txtData.requestFocus();

} catch (SQLException e) {
JOptionPane.showMessageDialog(this, “Houve um problema ao inserir ao banco de dados!!”);
}
}[/code]

O que tem de errado?! As informações de tabela pelo menos estão corretas!!!

Obrigado

Hum, dependendo do seu banco, você pode usar a query "SELECT COUNT () AS NAULAS FROM AULAS" e obter o valor de NAULAS.
Costuma ser mais rápido que ir até o fim, como foi mencionado.
(COUNT(
) funciona rápido no Oracle, mas não no MS SQL Server).

Eu uso mysql, mas essa do count é bom mas gostaria de aprender a usar os métodos do Java, pra ficar mais profissional :smiley:

O que é mais profissional é saber usar as ferramentas adequadas para cada problema. Muitas vezes é melhor, mais rápido e mais claro resolver o problema em SQL que tentar resolvê-lo no lado cliente (Java), mas isso só se aprende com a experiência.

Blz valeu!!! Vou fazer o count mesmo!!!

O que o Thingol disse está correto, tudo depende de seu uso. No caso do sistema aqui da empresa, nós evitamos acesso constante ao banco com fins de evitar tráfego na rede. Mas existem casos e casos.

E seu método não funcionou porque você estaria cadastrando com o mesmo código do último registro. Se você incrementar o código em 1, não terá mais esse problema.