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 (Deutsch) » SQL Anywhere Server - Programmierung » JDBC-Unterstützung » Datenzugriff mit JDBC

 

JDBC-Batch-Methoden

Die addBatch-Methode der Klasse PreparedStatement wird für die Ausführung von Batch-Einfügungen (oder breiten Einfügungen) verwendet. Es folgen einige Richtlinien zur Verwendung dieser Methode.

  1. Eine INSERT-Anweisung sollte unter Verwendung einer der prepareStatement-Methoden für die Klasse Connection vorbereitet werden.

    // Build the INSERT statement
    String sqlStr = "INSERT INTO Departments " +
                "( DepartmentID, DepartmentName ) " +
                "VALUES ( ? , ? )";
    // Prepare the statement
    PreparedStatement stmt =
         con.prepareStatement( sqlStr );
  2. Die Parameter für die vorbereitete INSERT-Anweisung sollten folgendermaßen festgelegt und in Stapeln gesetzt werden.



    // 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(); 
    }

    Beispiel:

    for( i=0; i < 5; i++ ) 
    {    
        stmt.setInt( 1, idValue );
        stmt.setString( 2, name );
        stmt.addBatch();
    }
  3. Der Batch muss unter Verwendung der executeBatch-Methode der Klasse PreparedStatement ausgeführt werden.

BLOB-Parameter werden in Batches nicht unterstützt.

Wenn Sie Batch-Einfügungen mit dem SQL Anywhere-JDBC-Treiber durchführen, wird empfohlen, eine kleine Spaltengröße zu verwenden. Die Verwendung von Batch-Einfügungen, zum Einfügen von großen Binär- oder Zeichendaten in long binary- oder long varchar-Spalten wird nicht empfohlen und kann zu einer Verminderung der Performance führen. Der Grund dafür ist, dass der SQL Anywhere-JDBC-Treiber viel Speicherplatz zuweisen muss, um die einzelnen Batch-Einfügezeilen aufzunehmen. In allen anderen Fällen sollte die Verwendung von Batch-Einfügungen eine bessere Performance liefern als die Verwendung von einzelnen Einfügungen.