sql >> Base de Datos >  >> RDS >> Oracle

Base de datos Oracle de clave primaria Java JDBC

La forma correcta de recuperar su clave principal es usar getGeneratedKeys instalación (que se puede activar mediante el Statement.RETURN_GENERATED_KEYS valor con uno de los Statement.execute* o Connection.prepareStatement métodos.

En la mayoría de las bases de datos, esto se puede usar para recuperar la clave principal directamente. Sin embargo, en el caso de Oracle, esto le permitirá obtener el ROWID , este ROWID se puede usar para consultar la tabla en busca de la fila insertada y obtener la clave principal.

Por ejemplo:

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);
        }
    }
}