Heim >Datenbank >MySQL-Tutorial >Wie rufe ich die Einfügungs-ID nach der Verwendung von JDBC ab?
Zugriff auf neu eingefügte Datensatz-IDs mit JDBC
Diese Anleitung beschreibt, wie Sie die automatisch generierte ID nach dem Einfügen eines Datenbankeintrags mithilfe von JDBC abrufen. Abhängig von Ihrem Datenbanksystem gibt es mehrere Ansätze.
Hebelwirkung Statement#getGeneratedKeys()
Für Datenbanken, die automatisch generierte Schlüssel unterstützen, bietet die Methode Statement#getGeneratedKeys()
eine unkomplizierte Lösung. Diese Methode gibt ein ResultSet
zurück, das die generierten Schlüssel enthält. Entscheidend ist, dass Sie den JDBC-Treiber anweisen, diese Schlüssel zurückzugeben, indem Sie bei der Vorbereitung der Anweisung Statement.RETURN_GENERATED_KEYS
angeben.
Anschauliches Beispiel:
<code class="language-java">try ( Connection connection = dataSource.getConnection(); PreparedStatement statement = connection.prepareStatement(SQL_INSERT, Statement.RETURN_GENERATED_KEYS); ) { // Set statement parameters // ... int affectedRows = statement.executeUpdate(); if (affectedRows == 0) { throw new SQLException("Record insertion failed, no rows affected."); } try (ResultSet generatedKeys = statement.getGeneratedKeys()) { if (generatedKeys.next()) { user.setId(generatedKeys.getLong(1)); } else { throw new SQLException("Record insertion failed, no ID obtained."); } } }</code>
Datenbankspezifische Alternativen
Es ist wichtig zu beachten, dass Statement#getGeneratedKeys()
nicht allgemein von allen JDBC-Treibern unterstützt wird. Für bestimmte Datenbanksysteme gibt es alternative Methoden:
CallableStatement
mit einer RETURNING
-Klausel oder führen Sie eine SELECT CURRVAL(sequencename)
-Abfrage nach dem Einfügevorgang aus.Statement#getGeneratedKeys()
.Statement#getGeneratedKeys()
.Das obige ist der detaillierte Inhalt vonWie rufe ich die Einfügungs-ID nach der Verwendung von JDBC ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!