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

8 respostas
J

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…

8 Respostas

Jair_Rillo_Junior

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

danieldestro

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.

J

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

Estou gravando no bd do access!!

Jair_Rillo_Junior

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
volnei

SELECT MAX(ID) FROM TABELA; :wink:

Rafael_Steil

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

J

[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

danieldestro

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

Criado 27 de dezembro de 2004
Ultima resposta 27 de dez. de 2004
Respostas 8
Participantes 5