org.seasar.extension.jdbc.query
クラス AbstractAutoBatchUpdate<T,S extends BatchUpdate<S>>

java.lang.Object
  上位を拡張 org.seasar.extension.jdbc.query.AbstractQuery<S>
      上位を拡張 org.seasar.extension.jdbc.query.AbstractAutoBatchUpdate<T,S>
型パラメータ:
T - エンティティの型です。
S - BatchUpdateのサブタイプです。
すべての実装されたインタフェース:
BatchUpdate<S>, Query<S>, SqlLogger
直系の既知のサブクラス:
AutoBatchDeleteImpl, AutoBatchInsertImpl, AutoBatchUpdateImpl

public abstract class AbstractAutoBatchUpdate<T,S extends BatchUpdate<S>>
extends AbstractQuery<S>
implements BatchUpdate<S>

バッチ更新の抽象クラスです。

作成者:
koichik

フィールドの概要
protected  int batchSize
          バッチサイズ
protected  java.util.List<T> entities
          エンティティのリスト
protected  EntityMeta entityMeta
          エンティティメタデータ
protected  boolean suppresOptimisticLockException
          バージョンチェックを行った場合に、 更新行数が0行でもOptimisticLockExceptionをスローしないなら true
 
クラス org.seasar.extension.jdbc.query.AbstractQuery から継承されたフィールド
callerClass, callerMethodName, completed, executedSql, jdbcManager, logger, paramList, queryTimeout
 
コンストラクタの概要
AbstractAutoBatchUpdate(JdbcManagerImplementor jdbcManager, java.util.List<T> entities)
           
 
メソッドの概要
 S batchSize(int batchSize)
          バッチ更新のサイズを設定します。
protected  java.sql.PreparedStatement createPreparedStatement(JdbcContext jdbcContext)
          準備されたステートメントを作成します。
 int[] execute()
          バッチ更新します。
protected  int[] executeBatch(java.sql.PreparedStatement ps)
          バッチ更新を実行します。
protected  int[] executeInternal()
          データベースのバッチ更新を実行します。
 java.util.List<T> getEntities()
          エンティティのリストを返します。
protected  java.sql.PreparedStatement getPreparedStatement(JdbcContext jdbcContext)
          準備されたステートメントを返します。
protected  void incrementVersions()
          バージョンの値を増加させます。
protected abstract  boolean isOptimisticLock()
          楽観的同時実行制御を行っている場合はtrueを返します。
protected abstract  void prepareParams(T entity)
          バインド変数を準備します.
protected  void prepareSql()
          SQLを準備します。
protected abstract  java.lang.String toSql()
          SQLに変換します。
protected  void validateRows(java.sql.PreparedStatement ps, int[] rows)
          行を更新または削除できたかどうかチェックします。
 
クラス org.seasar.extension.jdbc.query.AbstractQuery から継承されたメソッド
addParam, addParam, addParam, addParam, assertNotCompleted, callerClass, callerMethodName, completed, getCallerClass, getCallerMethodName, getExecutedSql, getJdbcManager, getParam, getParamClasses, getParamSize, getParamValues, getParamValueTypes, getQueryTimeout, getValueType, handleResultSet, logSql, logSql, prepare, prepareCallerClassAndMethodName, prepareInParams, queryTimeout, resetParams, toStringArray
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース org.seasar.extension.jdbc.Query から継承されたメソッド
callerClass, callerMethodName, queryTimeout
 

フィールドの詳細

entities

protected final java.util.List<T> entities
エンティティのリスト


entityMeta

protected final EntityMeta entityMeta
エンティティメタデータ


batchSize

protected int batchSize
バッチサイズ


suppresOptimisticLockException

protected boolean suppresOptimisticLockException
バージョンチェックを行った場合に、 更新行数が0行でもOptimisticLockExceptionをスローしないなら true

コンストラクタの詳細

AbstractAutoBatchUpdate

public AbstractAutoBatchUpdate(JdbcManagerImplementor jdbcManager,
                               java.util.List<T> entities)
パラメータ:
jdbcManager - 内部的なJDBCマネージャ
entities - エンティティのリスト
例外:
EmptyRuntimeException - エンティティのリストが空の場合
メソッドの詳細

batchSize

public S batchSize(int batchSize)
インタフェース BatchUpdate の記述:
バッチ更新のサイズを設定します。

定義:
インタフェース BatchUpdate<S extends BatchUpdate<S>> 内の batchSize
パラメータ:
batchSize - バッチ更新のサイズ
戻り値:
このインスタンス自身

execute

public int[] execute()
インタフェース BatchUpdate の記述:
バッチ更新します。

定義:
インタフェース BatchUpdate<S extends BatchUpdate<S>> 内の execute
戻り値:
更新した行数の配列

getEntities

public java.util.List<T> getEntities()
エンティティのリストを返します。

戻り値:
エンティティのリスト

prepareSql

protected void prepareSql()
SQLを準備します。


toSql

protected abstract java.lang.String toSql()
SQLに変換します。

戻り値:
SQL

executeInternal

protected int[] executeInternal()
データベースのバッチ更新を実行します。

戻り値:
更新した行数の配列

executeBatch

protected int[] executeBatch(java.sql.PreparedStatement ps)
バッチ更新を実行します。

パラメータ:
ps - 準備されたステートメント
戻り値:
更新された行数の配列

getPreparedStatement

protected java.sql.PreparedStatement getPreparedStatement(JdbcContext jdbcContext)
準備されたステートメントを返します。

パラメータ:
jdbcContext - JDBCコンテキスト
戻り値:
準備されたステートメント

createPreparedStatement

protected java.sql.PreparedStatement createPreparedStatement(JdbcContext jdbcContext)
準備されたステートメントを作成します。

パラメータ:
jdbcContext - JDBCコンテキスト
戻り値:
準備されたステートメント

prepareParams

protected abstract void prepareParams(T entity)
バインド変数を準備します.

パラメータ:
entity - エンティティ

isOptimisticLock

protected abstract boolean isOptimisticLock()
楽観的同時実行制御を行っている場合はtrueを返します。

戻り値:
楽観的同時実行制御を行っている場合はtrue

validateRows

protected void validateRows(java.sql.PreparedStatement ps,
                            int[] rows)
行を更新または削除できたかどうかチェックします。

パラメータ:
ps - 準備されたステートメント
rows - 更新行数の配列
例外:
OptimisticLockException - 行を更新または削除できなかった場合

incrementVersions

protected void incrementVersions()
バージョンの値を増加させます。



Copyright © 2004-2014 The Seasar Foundation. All Rights Reserved.