A funcionalidade de chaves autogeradas do JDBC 3.0 fornece uma maneira de
obter valores de colunas que fazem parte de um índice ou possuem um valor
padrão atribuído.
O suporta a
funcionalidade de auto-incremento, que permite aos usuários criarem colunas em
tabelas para as quais o sistema de banco de dados atribui automaticamente
valores inteiros incrementais.
No JDBC 3.0, pode ser chamado o método Statement.getGeneratedKeys
para obter o valor de uma coluna como esta.
Este método retorna um objeto ResultSet com uma coluna para a chave
gerada automaticamente.
Chamando-se ResultSet.getMetaData no objeto ResultSet retornado
por getGeneratedKeys produz um objeto ResultSetMetaData
semelhante ao retornado por
IDENTITY_VAL_LOCAL.
Quando a instrução é executada ou preparada, deve ser passado para os métodos
execute, executeUpdate ou prepareStatement
um sinalizador indicando que devem ser retornadas todas as colunas autogerada.
Abaixo segue um exemplo que retorna um ResultSet com valores para as
colunas autogeradas da TABELA1:
Statement stmt = conn.createStatement();
int rows = stmt.executeUpdate("INSERT INTO TABELA1 (C11, C12) VALUES (1,1)",
Statement.RETURN_GENERATED_KEYS);
ResultSet rs = stmt.getGeneratedKeys();
Para utilizar chaves autogeradas nas instruções INSERT deve ser passado
o sinalizador Statement.RETURN_GENERATED_KEYS para o método
execute ou executeUpdate.
O não suporta a
passagem de nomes de colunas ou índices de colunas para os métodos
execute, executeUpdate e prepareStatement.