Maison > Java > javaDidacticiel > Comment puis-je optimiser les insertions de plusieurs lignes dans MySQL à l'aide de PreparedStatement de Java ?

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

Patricia Arquette
Libérer: 2024-11-26 15:28:15
original
280 Les gens l'ont consulté

How Can I Optimize Multiple Row Insertions in MySQL Using Java's PreparedStatement?

Optimisation de l'insertion de plusieurs lignes dans MySQL avec Java à l'aide de PreparedStatement

Dans la programmation de bases de données, l'insertion efficace de plusieurs lignes dans une table est cruciale pour les performances. Cet article explique comment optimiser l'insertion de plusieurs lignes dans MySQL à l'aide de PreparedStatement de Java.

Contexte

Auparavant, une simple boucle était utilisée pour insérer des lignes une par une, ce qui pourrait être inefficace. Pour améliorer les performances, nous visons à utiliser la syntaxe prise en charge par MySQL qui permet d'insérer plusieurs lignes dans une seule instruction.

Utilisation du traitement par lots PreparedStatement

MySQL propose le traitement par lots comme moyen d'exécuter plusieurs déclarations en tant que groupe. Avec PreparedStatement, nous pouvons y parvenir en ajoutant des données de ligne individuelles à un lot à l'aide de la méthode addBatch(). Une fois que le lot est terminé ou atteint une limite de taille spécifique, nous pouvons exécuter l'intégralité du lot à l'aide d'executeBatch().

Vous trouverez ci-dessous un exemple de traitement par lots avec PreparedStatement :

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

Le traitement par lots améliore les performances. en réduisant les allers-retours vers la base de données et en permettant au serveur d'exécuter plusieurs instructions efficacement.

Supplémentaire Ressources

Pour plus d'informations sur le traitement par lots JDBC :

  • [Tutoriel JDBC - Utilisation de PreparedStatement](https://docs.oracle.com/javase/tutorial/jdbc/ basics/prepared.html)
  • [Tutoriel JDBC - Utilisation d'objets de déclaration pour Batch Mises à jour](https://docs.oracle.com/javase/tutorial/jdbc/basics/batchupdates.html)

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!

source:php.cn
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