使用PreparedStatement优化多行插入
最初,使用循环和单独的PreparedStatement调用将行插入MySQL表是一种常见的做法。然而,为了提高性能,最好利用 MySQL 支持的语法进行多行插入。
使用PreparedStatement 进行批处理
PreparedStatement 提供了一种优化多行插入的解决方案。通过批处理进行行插入。通过使用PreparedStatement#addBatch()方法,可以批量累积多个SQL语句。然后通过PreparedStatement#executeBatch()同时执行这些语句。
以下示例代码演示了这种方法:
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. } } } }
其他资源
有关此技术的更多详细信息,请参阅以下资源:
以上是PreparedStatement如何改进MySQL中的多行插入?的详细内容。更多信息请关注PHP中文网其他相关文章!