Falae galera!
Tenho uma chave AUTOINCREMENT e preciso saber qual chave foi inserida após um INSERT.
Uma forma de saber qual chave foi inserida seria executar um “SELECT MAX(myKey) FROM myTable” após a inserção, mas acho isso meio redundante.
Preciso relacionar esse registro inserido com outro registro de outra tabela, por isso preciso de sua chave.
Existe alguma classe que fornece a funcionalidade de gerar chaves como no Hibernate?
Valew!
Se o seu driver JDBC obedecer à especificação 3.0, existe um novo método em Statement chamado getGeneratedKeys().
Pegando o exemplo dado na especificação JDBC 3.0:
Statement stmt = conn.createStatement();
// indicate that the key generated is going to be returned
int rows = stmt.executeUpdate("INSERT INTO ORDERS " +
"(ISBN, CUSTOMERID) " +
"VALUES (195123018, ’BILLG’)",
Statement.RETURN_GENERATED_KEYS);
ResultSet rs = stmt.getGeneratedKeys();
boolean b = rs.next();
if (b == true) {
// retrieve the new key value
...
}
CODE EXAMPLE 13-28 Retrieving auto generated keys
No momento estou na Facul, amanhã vou fazer o teste.
Valeu thingol!