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

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

Barbara Streisand
Barbara StreisandOriginal
2024-12-01 01:59:14316Durchsuche

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

Einfügen mehrerer Zeilen in MySQL mit PreparedStatement

Oft besteht die Notwendigkeit, mehrere Zeilen gleichzeitig in eine Datenbank einzufügen. Während herkömmliche Methoden, bei denen jede Zeile durchlaufen und eine Einfügeanweisung ausgeführt wird, ineffizient sein können, bietet MySQL eine Syntax, die das Einfügen mehrerer Zeilen in einer einzigen Abfrage ermöglicht:

INSERT INTO table (col1, col2) VALUES ('val1', 'val2'), ('val1', 'val2')[, ...]

Verwenden von PreparedStatements für die Stapelverarbeitung

Um diesen Prozess mithilfe von Java und PreparedStatements zu optimieren, sollten Sie die Stapelverarbeitung in Betracht ziehen, die von der PreparedStatement-Klasse unterstützt wird. Indem Sie mit addBatch() einen Batch erstellen, können Sie ihn mitexecuteBatch() als Gruppe ausführen.

Codebeispiel

Das folgende Beispiel zeigt, wie Einfügungen stapelweise durchgeführt werden:

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();
            }
        }
    }
}

Batch-Ausführung Optimierung

Batching wird alle 1000 Elemente ausgeführt, um mögliche Einschränkungen von JDBC-Treibern oder Datenbanken zu vermeiden.

Zusätzliche Ressourcen

  • [ JDBC-Tutorial – Verwendung PreparedStatement](https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html)
  • [JDBC-Tutorial – Verwenden von Statement-Objekten 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 Java PreparedStatements effizient mehrere Zeilen in MySQL einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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