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. } } } }
Détails de mise en œuvre :
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!