Ich muss eine Tabelle aus einer Datenbank nehmen und sie in eine andere Datenbank hochladen. Also, ich erstelle zwei separate Verbindung. Hier ist mein Code
%Vor%Die obigen letzten Zeilen funktionieren nicht Wie kann ich das machen ? Die Grundlinie ist wie man ein fertiges Ergebnisset wiederverwenden kann
ResultSet ist ein bereites Java-Objekt. Ich hoffe, es gibt eine Möglichkeit, es zu Batch oder so etwas hinzuzufügen und executeUpdate
, , aber nicht um die Ergebnismenge in einen temporären Speicher ( List
, csv
usw.) und die Einfügung
Der einfachste Weg dazu ist eine vorbereitete Anweisung für den Einsatz. Damit können Sie ein einzelnes Anweisungsobjekt erstellen, mit dem die Abfrage mehrmals mit unterschiedlichen Parameterwerten ausgeführt werden kann.
%Vor% Die Zeilen werden in table2
eingefügt, während Sie die Ergebnisse von table1
durchlaufen, sodass Sie nicht die gesamte Ergebnismenge speichern müssen.
Sie können auch die Methoden addBatch()
und executeBatch()
der vorbereiteten Anweisung verwenden, um alle Einfügungen in eine Warteschlange zu stellen und sie gleichzeitig an die Datenbank zu senden, anstatt für jede einzelne eingefügte Zeile eine separate Nachricht an die Datenbank zu senden. Das zwingt JDBC jedoch dazu, alle ausstehenden Einfügungen im Speicher lokal zu speichern, was anscheinend vermieden werden soll. Daher sind in diesem Fall die Ein-Zeilen-Einsätze am besten geeignet.