ID des datasatzes abrufen, der gerade in eine Java DB (Derby) -database eingefügt wurde

Ich verbinde mich mit JDBC mit einer Java DB-database und möchte die ID (die sich in automatischem Inkrement befindet) des zuletzt eingefügten datasatzes abrufen.

Ich sehe, dass dies eine häufige Frage ist, aber ich sehe Lösungen mit zum Beispiel MS SQL server, was ist das Äquivalent für Java DB?

Solutions Collecting From Web of "ID des datasatzes abrufen, der gerade in eine Java DB (Derby) -database eingefügt wurde"

Sie müssen dafür kein DBMS-spezifisches SQL verwenden.

Dafür ist getGeneratedKeys () zuständig .

Wenn Sie Ihre statement vorbereiten, übergeben Sie die Namen der automatisch generierten Spalten, die Sie dann mit getGeneratedKeys () abrufen können.

 PreparedStatement pstmt = connection.prepareStatement (
      "in some_table (col1, col2, ..) Werte insert (....)", 
       neuer String [] {"ID_COLUMN"}); 

 pstmt.executeUpdate ();

 ResultSet rs = pstmt.getGeneratedKeys ();  // gibt die ID in ID_COLUMN zurück

Sie können mit der function IDENTITY_VAL_LOCAL möglicherweise das bekommen, wonach Sie suchen. ( Derby reference )

Diese function soll "den zuletzt zugewiesenen Wert einer Identitätsspalte für eine Verbindung zurückgeben, wo die Zuweisung als Ergebnis einer INSERT-statement mit einer einzigen Zeile unter Verwendung einer VALUES-Klausel erfolgte."

Es ist erwähnenswert, dass diese function unabhängig vom tatsächlichen datatyp der entsprechenden Identitätsspalte DECIMAL (31,0) zurückgibt.

Dies funktioniert auch nur für Einzeileneinfügungen, die eine VALUES-Klausel enthalten.