PreparedStatement を使用した MySQL への複数の行の挿入
多くの場合、複数の行を一度にデータベースに挿入する必要があります。各行を反復処理して挿入ステートメントを実行する従来の方法は効率が悪い場合がありますが、MySQL では 1 つのクエリで複数の行を挿入できる構文を提供しています。
INSERT INTO table (col1, col2) VALUES ('val1', 'val2'), ('val1', 'val2')[, ...]
バッチ処理に PreparedStatements を使用する
Java と PreparedStatements を使用してこのプロセスを最適化するには、次のことを考慮してください。バッチ処理。PreparedStatement クラスによってサポートされます。 addBatch() でバッチを作成すると、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(); } } } }
バッチ実行最適化
バッチ処理は、JDBC ドライバーまたはデータベースの潜在的な制限を回避するために 1000 項目ごとに実行されます。
追加リソース
以上がJava PreparedStatements を使用して MySQL に複数の行を効率的に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。