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

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

Barbara Streisand
Freigeben: 2024-11-26 13:44:10
Original
837 Leute haben es durchsucht

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

Mehrere MySQL-Zeilen mit PreparedStatement einfügen

Um das Einfügen von Zeilen in eine MySQL-Tabelle zu optimieren, können Sie die unterstützte Syntax nutzen:

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

Allerdings Wenn die Anzahl der einzufügenden Zeilen dynamisch ist, kann die Verwendung eines PreparedStatement eine Herausforderung darstellen.

Die Verwendung von a PreparedStatement mit AddBatch

Um mehrere Zeilen dynamisch mit einem PreparedStatement einzufügen, können Sie mit der Methode addBatch() einen Batch erstellen und ihn mitexecuteBatch() ausführen.

Hier ein Beispiel:

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

Bei diesem Ansatz wird der Batch alle 1000 Elemente ausgeführt, wobei Einschränkungen bei JDBC-Treibern oder Datenbankbatches berücksichtigt werden Länge.

Alternative Methoden

Wenn die Verwendung eines PreparedStatement mit Stapelverarbeitung nicht möglich ist, umfassen alternative Methoden zum Einfügen mehrerer Zeilen:

  • Verwendung der insert()-Methode von ein PreparedStatement für jede Zeile, mit möglichen Leistungseinschränkungen.
  • Verwendung eines Statement-Objekts, das die Ausführung mehrerer SQL-Anweisungen ermöglicht einmal.

Referenzen:

  • [JDBC-Tutorial – Verwenden von PreparedStatement](https://docs.oracle.com/javase/tutorial/ jdbc/basics/prepared.html)
  • [JDBC-Tutorial – Verwenden von Anweisungsobjekten für Batch-Updates](https://docs.oracle.com/javase/tutorial/jdbc/basics/batchupdates.html)

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von PreparedStatements 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