Home » apache-openjpa-1.1.0-source » org.apache.openjpa.jdbc » kernel » [javadoc | source]
    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one
    3    * or more contributor license agreements.  See the NOTICE file
    4    * distributed with this work for additional information
    5    * regarding copyright ownership.  The ASF licenses this file
    6    * to you under the Apache License, Version 2.0 (the
    7    * "License"); you may not use this file except in compliance
    8    * with the License.  You may obtain a copy of the License at
    9    *
   10    * http://www.apache.org/licenses/LICENSE-2.0
   11    *
   12    * Unless required by applicable law or agreed to in writing,
   13    * software distributed under the License is distributed on an
   14    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   15    * KIND, either express or implied.  See the License for the
   16    * specific language governing permissions and limitations
   17    * under the License.    
   18    */
   19   package org.apache.openjpa.jdbc.kernel;
   20   
   21   import java.sql.Connection;
   22   import java.util.Collection;
   23   
   24   import org.apache.openjpa.jdbc.sql.RowManager;
   25   
   26   /**
   27    * <P>Batch update manager that writes the SQL in object-level operation order. 
   28    * This update manager initiates a BatchPreparedStatementManagerImpl which 
   29    * will utilize the JDBC addBatch() and executeBatch() APIs to batch the 
   30    * statements for performance improvement.</P>
   31    * <P>This is the default plug-in class for UpdateManager to support statement 
   32    * batching. You can plug-in your own statement batch implementation through 
   33    * the following property: 
   34    * <PRE>
   35    *   < property name="openjpa.jdbc.UpdateManager" 
   36    *     value="org.apache.openjpa.jdbc.kernel.YourOperationOrderUpdateManager" />   
   37    * </PRE></P>
   38    * @author Teresa Kan
   39    */
   40   
   41   public class BatchingConstraintUpdateManager extends ConstraintUpdateManager {
   42   
   43       protected PreparedStatementManager newPreparedStatementManager(
   44           JDBCStore store, Connection conn) {
   45           int batchLimit = dict.getBatchLimit();
   46           return new BatchingPreparedStatementManagerImpl(store, conn,
   47               batchLimit);
   48       }
   49   
   50       /*
   51        * Override this method to flush any remaining batched row in the
   52        * PreparedStatementManager.
   53        */
   54       protected Collection flush(RowManager rowMgr,
   55           PreparedStatementManager psMgr, Collection exceps) {
   56           Collection rtnCol = super.flush(rowMgr, psMgr, exceps);
   57           BatchingPreparedStatementManagerImpl bPsMgr =
   58               (BatchingPreparedStatementManagerImpl) psMgr;
   59           bPsMgr.flushBatch();
   60           return rtnCol;
   61       }
   62   }

Save This Page
Home » apache-openjpa-1.1.0-source » org.apache.openjpa.jdbc » kernel » [javadoc | source]