Gostaria de Informacao de como pegar o ultimo registro gravado no bd

Ola, Pessoal. Sou iniciante em java, mas ja estou me virando até bem,
Estou desevolvendo um sistema para uma empresa, e em todos os cadastros tenho que pegar o ultimo id gravado no banco e mostrar para o usuario adicionado um, ja encontrei algumas informaçoes sobre isso, so que nao consegui entender muito bem. Gostaria de saber se tem alguem nesse Forum que ja tenha feito isso, para me passar umas dicas, ou mesmo um bloco de codigo com exemplo para que possa testar e entender.

Obrigado, desde já…

Bom natal para todos e um otimo ano novo…

estou no aguardo…

Está usando JDBC na sua aplicação? Se sim, você pode usar o próprio SQL para capturar o ultimo valor, o problema que isso é bastante dependente do banco de dados, ou seja, no Firebird é um tipo de comando, no SQL Server é outro, no MySQL outro e assimvai, fale qual seu banco de dados que eu vejo o comando.

Você também pode usar o Próprio ResultSet (apesar de que vai ser mais lento), você pode fazer um “select id… order by id desc” (lembre-se de ter um índice para a ID decrescente), capture o primeiro valor do ResultSet e ele será sua última ID cadastrada

Você pode dar um SELECT MAX() no campo desejado.
Porém, cuidado com a concorrência, pois você pode usar o mesmo número na hora em que dois processos tentam cadastrar.

[quote=ManchesteR]Está usando JDBC na sua aplicação? Se sim, você pode usar o próprio SQL para capturar o ultimo valor, o problema que isso é bastante dependente do banco de dados, ou seja, no Firebird é um tipo de comando, no SQL Server é outro, no MySQL outro e assimvai, fale qual seu banco de dados que eu vejo o comando.

Você também pode usar o Próprio ResultSet (apesar de que vai ser mais lento), você pode fazer um “select id… order by id desc” (lembre-se de ter um índice para a ID decrescente), capture o primeiro valor do ResultSet e ele será sua última ID cadastrada[/quote]

Estou gravando no bd do access!!

Você pode usar o MAX() que o Daniel Desto disse

Select MAX(id) from SuaTabela

ou no caso do Access existe o comando TOP, que retorna o número de registros que você quer (o TOP funciona também para SQLServer)

Select Top 1 * from SuaTabela Order by ID Desc

SELECT MAX(ID) FROM TABELA; :wink:

Alguns bancos, como o mysql, suportam a implementacao de getGeneratedKeys() da classe Statement. Ai nao precisa ficar fazendo queries extras.

Mas, como vc esta usando Access, use o MAX() mesmo :slight_smile:

Rafael

[quote=ManchesteR]Você pode usar o MAX() que o Daniel Desto disse

Select MAX(id) from SuaTabela

ou no caso do Access existe o comando TOP, que retorna o número de registros que você quer (o TOP funciona também para SQLServer)

Select Top 1 * from SuaTabela Order by ID Desc

Obrigado a todos que tentaram e ajudaram…
Consegui atraves do metodo “SELECT Top 1 * from tabela Order by id Desc”

ate mais

Essa não é a melhor solução, cara. Vai por mim.
O SELECT MAX(campo) é melhor.