Oracle
 sql >> Base de données >  >> RDS >> Oracle

Base de données Oracle de clé primaire Java JDBC

La bonne façon de récupérer votre clé primaire est d'utiliser le getGeneratedKeys facilité (qui peut être activée en utilisant la Statement.RETURN_GENERATED_KEYS value avec l'un des Statement.execute* ou Connection.prepareStatement méthodes.

Dans la plupart des bases de données, cela peut être utilisé pour récupérer directement la clé primaire. Dans le cas d'Oracle cependant cela vous permettra d'obtenir le ROWID , ce ROWID peut être utilisé pour interroger la table pour la ligne insérée et obtenir la clé primaire.

Par exemple :

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