sql >> Database teknologi >  >> RDS >> Oracle

Java JDBC Primary Key Oracle Database

Den korrekte måde at hente din primære nøgle på er at bruge getGeneratedKeys facilitet (som kan aktiveres ved at bruge Statement.RETURN_GENERATED_KEYS værdi med en af ​​Statement.execute* eller Connection.prepareStatement metoder.

I de fleste databaser kan dette bruges til at hente den primære nøgle direkte. I tilfælde af Oracle vil dette dog give dig mulighed for at få ROWID , denne ROWID kan bruges til at forespørge tabellen for den indsatte række og hente den primære nøgle.

For eksempel:

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


  1. Rails ignorerer konstanter i SQL SELECT-sætning

  2. Implementer forbindelsespooling i JDBC ved hjælp af apache dbcp

  3. MySQL mange-til-mange forhold til UDENLANDSKE NØGLER

  4. Indtast tekst og specialtegn og MySQL