2009-08-25 24 views
1

Angenommen, ich erhalte ein ResultSet, das mit Joins aus einer SQL-Datenbank abgefragt wurde.JDBC: Der beste Weg, um eine Tabelle zu aktualisieren?

Ist es besser, eine SQL-Anweisung zu verwenden, um die Tabellen zu aktualisieren oder neue Tupel/Zeilen einzufügen?

Oder sollte ich die Funktion resultSet.update() verwenden?

Ich will nur die Nachteile, die mit jedem sowie die bevorzugte Methode der Aktualisierung von Tabellen verbunden sind.

Antwort

2

ResultSet nur aktualisierbar sein, wenn:

  1. Sie Ihre Erklärung mit entsprechenden Flag erstellt haben (ResultSet.CONCUR_UPDATABLE)
  2. Die zugrunde liegende Datenbank/Treiber unterstützt Updates kommen über Ergebnisse

Wenn beide Bedingungen zutreffen, sind Aktualisierungen wahrscheinlich effizienter, wenn Sie auf diese Weise einen Cursor auf das Element setzen. Andernfalls müssen Sie eine neue Anweisung erstellen. Verwenden Sie dafür PreparedStatement.

+0

Warum eine vorbereitete Aussage verwenden? – cesar

+0

Da vordefinierte Anweisungen eigentlich immer anstelle von regulären verwendet werden sollten, können sie von der Datenbank zwischengespeichert/wiederverwendet werden, was zu einer besseren Leistung führt und Sie unter anderem vor SQL-Injection-Angriffen schützt. – ChssPly76

+0

+ 1 - Ja, Baby. PreparedStatement ist der einzige Weg zu gehen. Es würde mir schwerfallen, an einen guten Grund zu denken, sie NICHT zu benutzen. – duffymo

Verwandte Themen