Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ プログラミング » JDBC サポート » JDBC を使用したデータへのアクセス

 

JDBC バッチメソッド

PreparedStatement クラスの addBatch メソッドは、バッチ (またはワイド) 挿入を実行するために使用します。次に、このメソッドの使用に関するガイドラインの一部を示します。

  1. Connection クラスのいずれかの prepareStatement メソッドを使用して、INSERT 文を準備します。

    // Build the INSERT statement
    String sqlStr = "INSERT INTO Departments " +
                "( DepartmentID, DepartmentName ) " +
                "VALUES ( ? , ? )";
    // Prepare the statement
    PreparedStatement stmt =
         con.prepareStatement( sqlStr );
  2. 次のようにして、準備された INSERT 文のパラメータを設定してバッチ処理します。



    // loop to batch "n" sets of parameters
    for( i=0; i < n; i++ ) 
    {
        // "stmt" is the original prepared insert statement from step 1.
        stmt.setSomeType( 1, param_1 );
        stmt.setSomeType( 2, param_2 );
        .
        .
        .
        // There are "m" parameters in the statement.
        stmt.setSomeType( m , param_m );
    
        // Add the set of parameters to the batch and 
        // move to the next row of parameters.
        stmt.addBatch(); 
    }

    例:

    for( i=0; i < 5; i++ ) 
    {    
        stmt.setInt( 1, idValue );
        stmt.setString( 2, name );
        stmt.addBatch();
    }
  3. PreparedStatement クラスの executeBatch メソッドを使用して、バッチを実行する必要があります。

BLOB パラメータはバッチでサポートされていません。

SQL Anywhere JDBC ドライバを使用してバッチ挿入を実行する場合は、小さなカラムサイズを使用することを推奨します。バッチ挿入を使用して、大きなバイナリデータや文字データを long binary カラムや long varchar カラムに挿入すると、パフォーマンスが低下する可能性があるため、推奨しません。パフォーマンスが低下するのは、バッチ挿入されるローをすべて保持するために SQL Anywhere JDBC ドライバが大容量のメモリを割り当てる必要があるためです。これ以外の場合では、バッチ挿入を使用することで個別に挿入するよりも高いパフォーマンスを維持できます。