[Resolvido] como saber o id do banco na hora da inserção

10 respostas
adrivb

pessoal,

preciso ao cadastrar um novo registro (q tem o id auto-increment) me retorne qual o id foi cadastrado.
Procurei no forum e encontrei algo usando hibernate

mas não saquei como funciona, fiz minha conexao ao banco seguindo alguns tutoriais de como usar jdbc + mysql

para cadastrar eu uso os objetos PreparedStatement e connection

qual a maneira mais simples de pegar o id do registro que foi cadastrado?

10 Respostas

leonardofl

Não sei tem um jeito mais inteligente, mas já q vc tá no jdbc, acho q o mais simples é vc fazer uma consulta SQL ordenando os registros por id e pegar o primeiro (ou último) registro retornado

Pra busca não ficar mt pesada, no SQL dá pra setar o número máximo de registros e vc pode tb fazer só um SELECT id, em vez de SELECT *

adrivb

isso que nao quero fazer
preciso que me retorne o id no momento da inclusão, pois isso evitaria que me retornasse um id de outro cadastro realizado ao mesmo tempo

pelo que entendi teria que utilizar “persistência de bd”

pedruhenrik

pensei em algo menos inteligente ainda!

e se vc criar um metodo q busca na base o registro inserido, tipo,vc passa tds os parametros da tabela com os valores inseridos e retorna o id…

enqunato isso vou pesquisar outra maneira de fazer isso!

hahaha

boa sorte ae!

wilds87

Cara, não me lembro de cabeça de como fazer, mas eu fazia isso no “sql de inclusão”, tem um comando no oracle/db2 que retornam esse id.
Pesquisa que é esse o caminho =)

wilds87

http://jen.fluxcapacitor.net/geek/autoincr.html

leonardofl

hahahaha xD

mas até gostei da ideia!
só tem q ver se for uma tabela simples q permita valores repetidos (ex: os campos são id e nome), pq aí vai poder ter mais de um registro no resultado da query e aí tem q fazer oq eu disse…

mas se descobrir do jeito “certo” avisa aqui q vai ser legal saber!

pedruhenrik

da uma olhada nisso:

http://www.guj.com.br/posts/list/212227.java

e nisso:

http://bugs.mysql.com/bug.php?id=41448

att,

adrivb

legal, vou dar uma pesquisada nos links, qualquer coisa q eu conseguir posto aqui

achei q fosse algo bem simples, alguma linha apenas com um comando q retornasse o id
mas vou dar uma estudada nos links

adrivb

funcionou!!

usei esse do link mysql bugs q o pedruhenrik enviou

coloquei após meu executeupdate

ps.executeUpdate();
ResultSet rs = ps.getGeneratedKeys();
int novoRegistro = 0;
while(rs.next()){
novoRegistro = rs.getInt(1);
}

return novoRegistro;
pedruhenrik

boa!!!

se estiver td ok não esquece de colocar o [Resolvido]

flw!

Criado 1 de novembro de 2010
Ultima resposta 2 de nov. de 2010
Respostas 10
Participantes 4