Ich habe einige Datensätze zu importieren. Es ist in Ordnung, wenn sie zum ersten Mal eingefügt werden. Wenn ich versuche, dieselben Daten erneut zu importieren, erhalte ich eine org.postgresql.util.PSQLException: ERROR: doppelte Schlüsselwerte verletzen eindeutige Bedingungen. Wie kann ich die Datensätze in der Datenbank aktualisieren, wenn die Daten identisch sind oder geändert wurden, und die neuen Daten mit JDBC einfügen?Tabelle mit JDBC einfügen oder aktualisieren
public void store(Object entity) throws Exception {
try {
if (this.updateEntity((XEntity) entity) == 0) {
this.insertEntity((XEntity) entity);
}
...
} catch (SQLException sqlEx) {
...
}
}
private int updateEntity(XEntity entity) throws SQLException {
PreparedStatement prepStmt = this.getUpdatePreparedStmt();
...
return prepStmt.executeUpdate();
}
private void insertEntity(XEntity entity) throws SQLException {
...
this.getInsertPreparedStmt().executeUpdate();
}
Das Problem ist jetzt behoben. Ich habe unten eine Antwort gegeben.
Was ist XEntity? –
Sie scheinen sich in den frühen Phasen Ihrer Implementierung zu befinden. Haben Sie darüber nachgedacht, JPA oder Hibernate anstelle von Persistenz zu verwenden? Gibt es bestimmte Anforderungen, die einen Low-Level-JDBC-Zugriff erfordern? –
Sie sollten herausfinden, warum "this.updateEntity ((XEntity) entity) == 0". – pinichi