PreparedStatement を使用して PreparedStatement を使用して MySQL に複数の行を挿入する
Java では、PreparedStatement のバッチを使用して MySQL テーブルに複数の行を効率的に挿入できます。処理能力。以前は、行ごとに個別の SQL ステートメントを実行するのが一般的でした:
for (String element : array) { myStatement.setString(1, element[0]); myStatement.setString(2, element[1]); myStatement.executeUpdate(); }
ただし、パフォーマンスを最適化するために、MySQL では一度に複数の行を挿入できる構文を提供しています:
INSERT INTO table (col1, col2) VALUES ('val1', 'val2'), ('val1', 'val2')[, ...]
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. } } } }
1000 行ごとにバッチを実行JDBC ドライバーまたはデータベースによってバッチ サイズに課せられる潜在的な制限を回避するのに役立ちます。
JDBC チュートリアルを参照してください。バッチ更新に PreparedStatement オブジェクトと Statement オブジェクトを使用する方法の詳細については、
以上がJava の PreparedStatement を使用して MySQL に複数の行を効率的に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。