Zeile aus resultSet in eine andere Datenbank -Jdbc einfügen

8

Mit jdbc führe ich eine Abfrage über einen Server aus und erhalte das resultSet1. Nun habe ich eine Tabelle entsprechend resultSet1 über einen anderen Server erstellt (Server no: 2). Danach möchte ich das ResultSet1 direkt in die auf Server 2 erstellte Tabelle einfügen. Was ist der beste Weg, dies zu tun? Wie ich gerade, gibt es irgendwelche resultSet.insertRowInto () Art von Funktionen (generalisierte Antwort, die nicht die genauen Tabellendaten verwenden)?

%Vor%

Jetzt muss das resultSet auch in db2 in table1 kopiert werden.

    
Vishnu 18.04.2015, 17:14
quelle

1 Antwort

17

Eine JDBC-basierte Lösung, die Java 8 verwendet:

%Vor%

Wenn Sie nicht Java 8 verwenden:

Dann kann columns.stream() usw. und Lambda-Ausdrücke nicht verwendet werden. Hier ist eine alternative Möglichkeit zum Erstellen der INSERT -Anweisung:

%Vor%

Haftungsausschluss:

Ich verwende String-Verkettung, um obige SQL-Anweisungen zu generieren. Seien Sie SEHR vorsichtig mit dieser Technik, um zu verhindern, dass Sie in SQL-Injektion (und Syntaxfehler)! Der table -Parameter DARF NICHT Benutzereingaben sein!

Annahmen der Einfachheit halber:

  • Bei Spaltennamen wird die Groß- / Kleinschreibung nicht beachtet.
  • Sie haben keine übermäßige Menge an Daten (andernfalls sollten Sie von Zeit zu Zeit Commits machen, um UNDO / REDO-Logs klein zu halten)
  • Ihr JDBC-Treiber unterstützt setObject() und getObject() anstelle der konkreteren Typen, die möglicherweise erforderlich sind.
  • Sie müssen JDBC verwenden, da jede Bibliothek eine Art von Datensatzabstraktion unterstützt (z. B. Hibernate , jOOQ , ActiveJDBC , usw.) würde hier sehr helfen.
Lukas Eder 18.04.2015, 17:55
quelle

Tags und Links