Derby/JavaDB Derby SQL Insert mit AUTO_INCREMENT, welche ID wurde vergeben?

Maxi62

Aktives Mitglied
Hi,
ich nutze die Derby Datenbank, wobei der Primärschlüssel eine automatisch hochzählende ID ist (also AUTO_INCREMENT).
Wenn ich jetzt mit Insert einen Datensatz aufnehme, wie erfahre ich die vergebene ID? Oft muss man ja gleich danach Teildaten in anderen Tabellen speichern und braucht die ID zur Verknüpfung (also für ein Feld der Teildatentabelle). Wie geht man da am besten vor? Es wäre doch etwas umständlich wenn ich jetzt noch eine Query brauche um die gespeicherten Daten wieder rückzuholen um die ID zu erfahren, oder?
 

Maxi62

Aktives Mitglied
Also bei mir funktioniert das irgendwie nicht obewohl ich es eigentlich entsprechend dem Beispiel gemacht hab.

Hier Codeauszug:

Java:
            ...
            preparedStatement.setLong(29, dsStamm.getStdRechnAdrsIDRef());
            preparedStatement.setLong(30, dsStamm.getStdLiefAdrsIDRef());
            preparedStatement.setString(31, dsStamm.getLieferantenNr());
            preparedStatement.executeUpdate(); //Datensatz aufnehmen

            ResultSet rs = preparedStatement.getGeneratedKeys();
            if (rs.next()) {
                long vergID = rs.getLong(1);
            }

Problem ist schon das das ResultSet nach dem Aufruruf von preparedStatement.getGeneratedKeys() null ist.
 
Zuletzt bearbeitet von einem Moderator:

Maxi62

Aktives Mitglied
Ah, ich habs! Genau da war der Fehler, ich musste folgendes schreiben:

Java:
preparedStatement =db.getConnection().prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);

So gehts, danke für Hinweis!

Ach noch eins:
Ich habe gemerkt das man bei einer Sql Insert Anweisung eigentlich alle Datentypen auch unbelegt lassen kann, es wird dann null eingetragen. Nur bei BIGINT scheint dies nicht zu funktionieren, da wird Exception ausgelöst wenn ich eine nicht initialisierte Long Zahl zuweise. Warum geht das da nicht, das wäre hier hilfreich da ich ja BIGINT als Verweis auf andere TabellenID nutze und die manchmal auch null sein sollte. Derzeit behelfe ich mir mit "-1", aber null wäre schöner. Also null und nicht 0 !
 
Zuletzt bearbeitet von einem Moderator:

Flown

Administrator
Mitarbeiter
Das geht eleganter, wenn du mit Long arbeitest, kannst du überprüfen ob der Wert null ist.

Java:
long refId = ...;
if(refId == null) {
  ps.setNull(1, BIGINT);
} else {
  ps.setLong(1, refId);
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JAVA Derby INSERT probleme Datenbankprogrammierung 12
M Derby insert, ID auslesen Datenbankprogrammierung 3
thor_norsk Datenbank: Apache Derby Datenbankprogrammierung 6
O apache derby in eclipse für Datenbanken einbauen Datenbankprogrammierung 3
F Derby Datenbankprogrammierung 5
T importierte Derby DB währen der Laufzeit einlesen Datenbankprogrammierung 2
L Derby/JavaFX Fehlermeldung Datenbankprogrammierung 3
R findet Derby.DB nicht !? Datenbankprogrammierung 5
K Eclipse Apache Derby Treiber Problem Datenbankprogrammierung 4
J Derby/JavaDB Datenbankanbindung Eclipse und Derby Datenbankprogrammierung 7
J Verbindung zu Derby Datenbank funktioniert nicht Datenbankprogrammierung 14
T Datenbankfeld in Derby 255 Zeichen Datenbankprogrammierung 3
C Derby auf Server Datenbankprogrammierung 6
R derby : in squirrel url zu db von tomcat Datenbankprogrammierung 4
H Derby: SYSCS_UTIL.SYSCS_EXPORT_QUERY mit String Abfrage in wehre-Klausel nicht möglich Datenbankprogrammierung 3
H Probleme mit Unicodedarstellung in Derby DB Datenbankprogrammierung 1
S Dringend Netbeans Derby DB random() function Datenbankprogrammierung 6
M HSQLDB oder DERBY - warum SCRIPT Datei? Datenbankprogrammierung 0
B Derby/JavaDB Einrichten der Derby DB / JAVA DB Datenbankprogrammierung 2
A Eclipse + Derby + Delete Row Datenbankprogrammierung 3
D Derby Datenbank bei Export zu JAR-Datei nicht möglich Datenbankprogrammierung 8
D Embedded Derby Datenbank Datenbankprogrammierung 4
reibi Derby/JavaDB Derby DB löschen Datenbankprogrammierung 5
L Derby Datenbank speichert nicht Datenbankprogrammierung 9
N Query für Derby DB mit Enterbrise Bean Datenbankprogrammierung 4
S Derby/JavaDB Derby zu MySQL Datenbankprogrammierung 6
H Derby/JavaDB Eine verschlüsselte Derby-Datenbank wieder entschlüsseln Datenbankprogrammierung 4
G Derby/H2 Welches u. Wie installieren/verwenden? Datenbankprogrammierung 10
L Derby/JavaDB Derby macht Probleme Datenbankprogrammierung 4
zilti Derby/JavaDB EclipseLink und Derby: "Abschneidefehler" bei @Lob Datenbankprogrammierung 2
B Derby Databankabfrage liefert Ergebnisse nicht korrekt Datenbankprogrammierung 2
H Derby SQL-Abfragen in Datei abspeichern Datenbankprogrammierung 2
H Flat Files in Derby importieren Datenbankprogrammierung 3
reibi Derby/JavaDB Derby russty manager deaktivieren Datenbankprogrammierung 3
L Derby Dezimal-Spalte die Größe ändern Datenbankprogrammierung 2
D PostgreSQL vs Firebird vs Derby Datenbankprogrammierung 12
P Zugreifen auf Derby Datenbank mit java (ÜBERARBEITET) Datenbankprogrammierung 2
R Lokale Derby in einer JPA-Anwendung Datenbankprogrammierung 3
S Derby ein zweites mal als Read-only öffnen Datenbankprogrammierung 9
J Derby Datenbankprogrammierung 7
S Derby Datenbank "offline" und "online" Datenbankprogrammierung 5
L Apache Derby Management-Tool Datenbankprogrammierung 3
A JavaDB(Derby) als ODBC-Datenquelle eintragen Datenbankprogrammierung 4
T Derby und Foreign Keys Datenbankprogrammierung 4
I JAVADB (Derby) OneToMany Datenbankprogrammierung 2
T Zugriff auf Derby-Datenbank will einfach nicht klappen Datenbankprogrammierung 22
M Gelöst: JavaDB - Derby Inhalt in Jar Datei speichern Datenbankprogrammierung 5
O Derby/JavaDB anwenden von Regular Expressions Datenbankprogrammierung 2
O Derby Performance Probleme? Datenbankprogrammierung 4
H Derby in Java 6 direkt integriert? Wie nutzt man das? Datenbankprogrammierung 3
Z derby abfrage von einem Timestamp Datenbankprogrammierung 2
GilbertGrape Allgemeines zu Derby Datenbankprogrammierung 7
M JavaDB/Derby: Tabellen erstellen Datenbankprogrammierung 8
G Derby Anleitung? Datenbankprogrammierung 1
H Migration von MySQL auf Derby Datenbankprogrammierung 2
B Java Derby Datenbank mit CLOB & BLOB Datenbankprogrammierung 5
vogella Java DB (Derby) Size Datenbankprogrammierung 12
J Derby Cursor Problem Datenbankprogrammierung 2
R Wie stabil ist Derby? Datenbankprogrammierung 2
P derby datenbank Datenbankprogrammierung 2
D Installation von Apache Derby in Eclipse Datenbankprogrammierung 1
P DERBY vs HSQLDB (Vor- Nachteile) Datenbankprogrammierung 3
B Cloudscape/Derby NetworkServer als JDBCRealm Datenbank Datenbankprogrammierung 2
P Apache DERBY - Datanbank erstellen Datenbankprogrammierung 2
T compiler fehler: should be mapped with insert="false" update="false" Datenbankprogrammierung 1
L SQL Datenbank INSERT INTO Datenbankprogrammierung 6
L SQL Datenbank Tabelle insert Datenbankprogrammierung 7
O HOW TO INSERT PRIMARY INTO ANOTHER TABLE AND USE IT AS FOREIGN KEY TO DISPLAY DATA IN A RELATIONSHIP Datenbankprogrammierung 3
G Eine Spalte in xampp als Typ array erstellen - ein array mit "insert" hinzufügen. Datenbankprogrammierung 3
C Problem with INSERT.............ON DUPLICATE KEY Datenbankprogrammierung 3
A MySQL Select und Insert in Java Datenbankprogrammierung 15
S PostgreSQL Bytea INSERT Datenbankprogrammierung 8
W Problem mit Insert in zwei Tabellen Datenbankprogrammierung 8
L INSERT INTO Befehl in Java Datenbankprogrammierung 8
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
D Insert Methode per Servlet Datenbankprogrammierung 2
D Insert Methode per Servlet Datenbankprogrammierung 0
D SQLite INSERT OR REPLACE INTO macht neuen Eintrag?! Datenbankprogrammierung 2
O JDBC Daten in zwei Tabellen mit zwei foreach-Schleifen einfügen (insert into) Datenbankprogrammierung 1
B JPA->fehler beim Insert in die Datenbank Datenbankprogrammierung 3
A Oracle insert Array in DB Datenbankprogrammierung 7
C MySQL JTable in JScrollPane nach insert aktualisieren Datenbankprogrammierung 3
X SQLite Erhalte bei Query INSERT INTO eine NullPointerException Datenbankprogrammierung 10
Y MySQL Eclipselink Insert JSF Beispiel gesucht Datenbankprogrammierung 2
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
D HSQLDB INSERT INTO in einer For Schleife mit selber ID, machbar? Alternative? Datenbankprogrammierung 7
J SQL-Statement Meine insert befehle funktionieren nicht und ich weiß nicht wo der fehler liegt Datenbankprogrammierung 5
M INSERT-Problem = integrity constraint violation: foreign key no parent Datenbankprogrammierung 5
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
M MySQL Insert über mehrere Tabellen Datenbankprogrammierung 7
V HSQLDB Insert in eine Tabelle mit Autoincrement Datenbankprogrammierung 2
B MS SQL: Insert LOB Datenbankprogrammierung 4
M MySQL INSERT will einfach nicht funktionieren Datenbankprogrammierung 9
H HSQLDB insert .... values("test1",select test2 from foo) Datenbankprogrammierung 2
D JDBC insert mit select abfrage Datenbankprogrammierung 5
R vor/nach INSERT mysql-SETS absetzen Datenbankprogrammierung 2
C insert into mit between-Anweisung Datenbankprogrammierung 10
C Derby/JavaDB INSERT auf FOREIGN KEY schlägt fehl Datenbankprogrammierung 2
F Insert into Access Datenbankprogrammierung 3
S Nochmals: ID ermitteln nach Insert Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben