JDBC Driver for Salesforce Marketing Cloud

Build 24.0.9062

バッチ処理

CData JDBC Driver for Salesforce Marketing Cloud では、JDBC batch API を通じて、Salesforce Marketing Cloud の一括ロードサポートを活用することができます。batch API を使用して、関連するSQL データ操作ステートメントを同時に実行できます。

JDBC Batch API の使用

次の例は、PreparedStatement を使用して一括操作を実行する方法を示しています。

一括挿入

PreparedStatement を使用して一括挿入を実行するには、一括挿入の一部として実行するパラメータのセットごとにaddBatch を呼び出します。すべてのパラメータのセットをバッチに追加したら、executeBatch を呼び出して一括挿入を実行できます。

executeBatch メソッドは、各ステートメントの更新数を含む配列を返します。次に例を示します。

新しいレコードの主キーを取得するには、prepareStatement を呼び出すときにStatement.RETURN_GENERATED_KEYS フラグを設定し、executeBatch を呼び出した後にgetGeneratedKeys メソッドを呼び出します。

String query = "INSERT INTO Subscriber (Status) VALUES (?)"; 
PreparedStatement pstmt = conn.prepareStatement(query,Statement.RETURN_GENERATED_KEYS);

pstmt.setString(1, "Jon Doe"); 
pstmt.addBatch();

pstmt.setString(1, "John"); 
pstmt.addBatch();

int[] r = pstmt.executeBatch();
for(int i: r)
  System.out.println(i);

ResultSet rs = pstmt.getGeneratedKeys();
while(rs.next()){    
  System.out.println(rs.getString("Id"));
}

一括更新

PreparedStatement を使用して一括更新を実行するには、一括更新の一部として実行するパラメータのセットごとにaddBatch を呼び出します。すべてのパラメータのセットをバッチに追加したら、executeBatch を呼び出します。

executeBatch メソッドは、配列内の各ステートメントの更新数を返します。次に例を示します。

String query = "UPDATE Subscriber SET Status = ? WHERE Id = ?"; 
PreparedStatement pstmt = conn.prepareStatement(query);

pstmt.setString(1,"Jon Doe");
pstmt.setString(2,"MyId"); 
pstmt.addBatch();		

pstmt.setString(1,"John");
pstmt.setString(2,"MyId2"); 
pstmt.addBatch();		

int[] r = pstmt.executeBatch();
for(int i: r)
  System.out.println(i);

バッチサイズの設定

サーバーに送信されるリクエストのサイズに制限がある場合は、バッチサイズの最大値を設定する必要があります。BatchSize プロパティを設定して、バッチ全体を指定された値のバッチに分割します。各バッチは、個別にサーバーに送信されます。

または、BatchSize を0 に設定して、バッチ全体を送信します。

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.9062