Descrobrir chave

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!