Pegando pk!

5 respostas
dicabeca

ai pessoal eu sei q o hibernate faz isso,o q eu quero saber é o seguinte,tenho uma TABELA qualquer, com alguns campos, sendo q a pk é um int autoIncrement,quero saber c tem como na hr em q eu insiro um registro, pegar a pk sem ter q fzr uma nova consulta isso é possivel c for como é? vlw ai pessoal

5 Respostas

Guilherme_Gomes

Na hora que voce der o commit o seu objeto persistido ganha a PK, por exemplo:

transaction.begin();
Usuario u = new Usuario();
u.setNome("Nome");
u.setIdade(333);
session.save(u);
session.flush();
transaction.commit();
u.getId(); // ID ja esta setado (PK)
dicabeca

nao estou usando hibernate,e nem session e claro nem transação,estou na “faca” mesmo hehehe,to inserino com o statement.executeQuery(sql), é depois disso q eu quero saber sem usar framework algum,so api nativa mesmo!!!

Guilherme_Gomes

Atah, pareceu que voce estava usando hibernate, que sabia que ele faz isso mas não como!

Bom, por statement que eu saiba, não da pra fazer isso sem uma nova busca…

dicabeca

po me expressei mal entao foi mal, mas obrigado de qualquer forma pela ajuda vlw,se alguem souber de alguma forma posta ai vlw !!!

_Renatu

tem sim

voce tem q setar o preparedStatement com RETURN_GENERATED_KEYS e depois utilizar o método getGeneratedKeys();

nesse link tem um codigo que faz isso:

http://devmedia.com.br/articles/viewcomp.asp?comp=1984

Criado 16 de novembro de 2007
Ultima resposta 16 de nov. de 2007
Respostas 5
Participantes 3