Maison > base de données > tutoriel mysql > Comment optimiser les insertions de plusieurs lignes dans MySQL à l'aide de PreparedStatement de Java ?

Comment optimiser les insertions de plusieurs lignes dans MySQL à l'aide de PreparedStatement de Java ?

Barbara Streisand
Libérer: 2024-12-27 09:11:10
original
619 Les gens l'ont consulté

How to Optimize Multiple Row Inserts in MySQL using Java's PreparedStatement?

Insérer plusieurs lignes simultanément à l'aide de PreparedStatement en Java

Question :

Comment optimiser l'insertion de plusieurs lignes dans une table MySQL à l'aide de Java, en tirant parti de la syntaxe MySQL prise en charge pour insérer plusieurs valeurs en une seule déclaration?

Réponse :

L'utilisation de PreparedStatement#addBatch() et PreparedStatement#executeBatch() permet la création d'un lot d'insertions et son exécution ultérieure.

Exemple :

Considérons l'exemple suivant pour lancer l'insertion par lots :

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.
            }
        }
    }
}
Copier après la connexion

Détails de mise en œuvre :

  • Les insertions sont effectuées par lots de 1 000 pour éviter les limitations potentielles des pilotes JDBC ou des bases de données par lots longueur.
  • Le didacticiel JDBC fournit des ressources supplémentaires sur l'utilisation de PreparedStatements et de batch mises à jour.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal