Heim > Java > javaLernprogramm > Wie kann ich mithilfe von PreparedStatement effizient mehrere Zeilen in MySQL einfügen?

Wie kann ich mithilfe von PreparedStatement effizient mehrere Zeilen in MySQL einfügen?

Barbara Streisand
Freigeben: 2024-11-29 11:16:12
Original
841 Leute haben es durchsucht

How Can I Efficiently Insert Multiple Rows into MySQL Using PreparedStatement?

Einfügen mehrerer Zeilen in MySQL mithilfe von PreparedStatement

Beim Versuch, zahlreiche Zeilen effizient in eine MySQL-Tabelle einzufügen, kann es beim herkömmlichen PreparedStatement-Ansatz zu Einschränkungen kommen, da dies nicht möglich ist Die Anzahl der einzufügenden Zeilen wird vorab in PreparedStatement festgelegt.

Um den Einfügungsprozess zu optimieren, stellt MySQL die Batch-Einfügungssyntax wie folgt bereit:

INSERT INTO table (col1, col2) VALUES ('val1', 'val2'), ('val1', 'val2')[, ...]
Nach dem Login kopieren

Verwenden Sie PreparedStatement für die Batch-Einfügung

Verwenden PreparedStatement Die Schritte zum Batch-Einfügen sind wie folgt:

  1. Verwenden Sie addBatch() Die Methode fügt jede Datenzeile zum Stapel hinzu.
  2. Verwenden Sie die MethodeexecuteBatch(), um die Stapelverarbeitung auszuführen.

Beispielcode:

public void save(List<Entity> entities) throws SQLException {
    try (
        Connection connection = database.getConnection();
        PreparedStatement statement = connection.prepareStatement(SQL_INSERT);
    ) {
        int i = 0;

        for (Entity entity : entities) {
            statement.setString(1, entity.getSomeProperty());
            // ...

            statement.addBatch();
            i++;

            if (i % 1000 == 0 || i == entities.size()) {
                statement.executeBatch(); // Execute every 1000 items.
            }
        }
    }
}
Nach dem Login kopieren

Es ist zu beachten, dass bei der Stapeleinfügung empfohlen wird, diese alle bestimmte Anzahl von Zeilen durchzuführen (z (z. B. 1000), da einige JDBC-Treiber oder Datenbanken möglicherweise Einschränkungen hinsichtlich der Stapellänge haben.

Verwandte Referenzen:

  • JDBC-Tutorial – Verwenden von PreparedStatement
  • JDBC-Tutorial – Verwenden von Statement-Objekten für Stapelaktualisierungen

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von PreparedStatement effizient mehrere Zeilen in MySQL einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage