Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Java JDBC Chave Primária Oracle Database


A maneira correta de recuperar sua chave primária é usar o getGeneratedKeys recurso (que pode ser ativado usando o Statement.RETURN_GENERATED_KEYS valor com um dos Statement.execute* ou Connection.prepareStatement métodos.

Na maioria dos bancos de dados, isso pode ser usado para recuperar a chave primária diretamente. No caso do Oracle, no entanto, isso permitirá que você obtenha o ROWID , este ROWID pode ser usado para consultar a tabela para a linha inserida e obter a chave primária.

Por exemplo:
stmt.executeUpdate("INSERT INTO theTable(column1) VALUES ('a')",
      Statement.RETURN_GENERATED_KEYS);
ResultSet keys = stmt.getGeneratedKeys();
int primaryKey = -1;
if (keys.next()) {
    try (PreparedStatement keyStatement = 
           connection.prepareStatement("SELECT ID FROM theTable WHERE ROWID = ?")) {
        keyStatement.setRowId(keys.getRowId(1));
        try (ResultSet rs = keyStatement.executeQuery()) {
             primaryKey = rs.getInt(1);
        }
    }
}