jp.terasoluna.fw.batch.dao.support
クラス BatchUpdateSupportImpl

java.lang.Object
  上位を拡張 jp.terasoluna.fw.batch.dao.support.BatchUpdateSupportImpl
すべての実装されたインタフェース:
BatchUpdateSupport

public class BatchUpdateSupportImpl
extends Object
implements BatchUpdateSupport

バッチ更新サポートクラス

本クラスを利用すことでUpdateDAOのバッチ更新処理の実行をSqlID毎に整列された状態で行うことができる。
SqlIDでソートすることでJDBCのPreparedStatement#executeBatchの実行回数を減らせる事により性能に寄与する。

sortメソッドを実行せずにSQLを実行した場合は、初回に追加したSQL-IDの順が維持される。

  • たとえば以下のような順でSQL-IDを追加した場合

  • A C B A B C B C A

  • sortメソッドを実行せずにSQLを実行した場合の実行順

  • A A A C C C B B B

  • sortメソッドを実行後にSQLを実行した場合の実行順

  • A A A B B B C C C

    ※マルチスレッドセーフではないため複数スレッドで利用する場合は、各スレッドごとに別インスタンスを生成すること。

    関連項目:
    UpdateDAO

    フィールドの概要
    protected  Map<String,Queue<jp.terasoluna.fw.dao.SqlHolder>> batchSqlsMap
              バッチ実行SQLを保持する.
    protected  Comparator<String> comparator
              SqlIDをソートする時に使用するComparator
    protected  AtomicLong count
              バッチ実行SQL登録件数
    protected  boolean sortMode
              ソートフラグ
    protected  jp.terasoluna.fw.dao.UpdateDAO updateDAO
              UpdateDAO
     
    インタフェース jp.terasoluna.fw.batch.dao.support.BatchUpdateSupport から継承されたフィールド
    ERROR_UNKNOWN_SQL_ID, ERROR_UPDATE_DAO_IS_NULL
     
    コンストラクタの概要
    BatchUpdateSupportImpl()
              バッチ更新サポートクラスコンストラクタ.
    BatchUpdateSupportImpl(jp.terasoluna.fw.dao.UpdateDAO updateDAO)
              バッチ更新サポートクラスコンストラクタ.
    BatchUpdateSupportImpl(jp.terasoluna.fw.dao.UpdateDAO updateDAO, Comparator<String> comparator)
              バッチ更新サポートクラスコンストラクタ.
    BatchUpdateSupportImpl(jp.terasoluna.fw.dao.UpdateDAO updateDAO, String... sqlIdOrder)
              バッチ更新サポートクラスコンストラクタ.
     
    メソッドの概要
     void addBatch(String sqlID, Object bindParams)
              バッチ実行用SQLを追加する。
     void clear()
              バッチ実行SQLリストの内容を削除する。
     int executeBatch()
              バッチ実行を行う。
     int executeBatch(jp.terasoluna.fw.dao.UpdateDAO updateDAO)
              バッチ実行を行う。
     int executeBatch(jp.terasoluna.fw.dao.UpdateDAO updateDAO, Comparator<String> comparator)
              バッチ実行を行う。
    protected  int executeBatch(jp.terasoluna.fw.dao.UpdateDAO updateDAO, Comparator<String> comparator, String[] sqlIdOrder)
              バッチ実行を行う。
     int executeBatch(jp.terasoluna.fw.dao.UpdateDAO updateDAO, String... sqlIdOrder)
              バッチ実行を行う。
     List<jp.terasoluna.fw.dao.SqlHolder> getSqlHolderList()
              SQL-IDで整列されたSqlHolderリストを取得する。
     List<jp.terasoluna.fw.dao.SqlHolder> getSqlHolderList(Comparator<String> comparator)
              SQL-IDで整列されたSqlHolderリストを取得する。
    protected  List<jp.terasoluna.fw.dao.SqlHolder> getSqlHolderList(Comparator<String> comparator, String[] sqlIdOrder)
              SQL-IDで整列されたSqlHolderリストを取得する。
     List<jp.terasoluna.fw.dao.SqlHolder> getSqlHolderList(String... sqlIdOrder)
              SQL-IDで整列されたSqlHolderリストを取得する。
     long size()
              バッチ実行SQLリストの登録件数を取得する。
     void sort()
              バッチ実行SQLリストのソートを行う。
     void sort(Comparator<String> comparator)
              バッチ実行SQLリストのソートを行う。
     
    クラス java.lang.Object から継承されたメソッド
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
     

    フィールドの詳細

    updateDAO

    protected jp.terasoluna.fw.dao.UpdateDAO updateDAO
    UpdateDAO


    comparator

    protected volatile Comparator<String> comparator
    SqlIDをソートする時に使用するComparator


    batchSqlsMap

    protected final Map<String,Queue<jp.terasoluna.fw.dao.SqlHolder>> batchSqlsMap
    バッチ実行SQLを保持する.


    sortMode

    protected volatile boolean sortMode
    ソートフラグ


    count

    protected volatile AtomicLong count
    バッチ実行SQL登録件数

    コンストラクタの詳細

    BatchUpdateSupportImpl

    public BatchUpdateSupportImpl()
    バッチ更新サポートクラスコンストラクタ.


    BatchUpdateSupportImpl

    public BatchUpdateSupportImpl(jp.terasoluna.fw.dao.UpdateDAO updateDAO)
    バッチ更新サポートクラスコンストラクタ.

    パラメータ:
    updateDAO - UpdateDAO

    BatchUpdateSupportImpl

    public BatchUpdateSupportImpl(jp.terasoluna.fw.dao.UpdateDAO updateDAO,
                                  Comparator<String> comparator)
    バッチ更新サポートクラスコンストラクタ.

    パラメータ:
    updateDAO - UpdateDAO
    comparator - Comparator<String>

    BatchUpdateSupportImpl

    public BatchUpdateSupportImpl(jp.terasoluna.fw.dao.UpdateDAO updateDAO,
                                  String... sqlIdOrder)
    バッチ更新サポートクラスコンストラクタ.

    パラメータ:
    updateDAO - UpdateDAO
    sqlIdOrder - SQL-IDの実行順序を指定する
    メソッドの詳細

    addBatch

    public void addBatch(String sqlID,
                         Object bindParams)
    インタフェース BatchUpdateSupport の記述:
    バッチ実行用SQLを追加する。

    定義:
    インタフェース BatchUpdateSupport 内の addBatch
    パラメータ:
    sqlID - String
    bindParams - Object

    executeBatch

    public int executeBatch()
    インタフェース BatchUpdateSupport の記述:
    バッチ実行を行う。

    バッチ実行が成功した場合は、保持しているバッチ実行SQLリストの削除を行う。

    本メソッドで実行する場合は、コンストラクタ引数でUpdateDAOを渡しておくこと。
    UpdateDAOがコンストラクタ引数で渡されていない場合は、-100が返却される。

    定義:
    インタフェース BatchUpdateSupport 内の executeBatch
    戻り値:
    SQLの実行結果
    関連項目:
    UpdateDAO

    executeBatch

    public int executeBatch(jp.terasoluna.fw.dao.UpdateDAO updateDAO)
    インタフェース BatchUpdateSupport の記述:
    バッチ実行を行う。

    バッチ実行が成功した場合は、保持しているバッチ実行SQLリストの削除を行う。

    本メソッドで実行する場合は、コンストラクタ引数で渡されたUpdateDAOは使用されない。
    UpdateDAOがnullの場合は、-100が返却される。

    定義:
    インタフェース BatchUpdateSupport 内の executeBatch
    パラメータ:
    updateDAO - UpdateDAO
    戻り値:
    SQLの実行結果
    関連項目:
    UpdateDAO

    executeBatch

    public int executeBatch(jp.terasoluna.fw.dao.UpdateDAO updateDAO,
                            Comparator<String> comparator)
    インタフェース BatchUpdateSupport の記述:
    バッチ実行を行う。

    バッチ実行が成功した場合は、保持しているバッチ実行SQLリストの削除を行う。

    本メソッドで実行する場合は、コンストラクタ引数で渡されたUpdateDAOは使用されない。
    UpdateDAOがnullの場合は、-100が返却される。

    Comparatorを渡すことによりSQL実行順序順序を制御できる。
    ※Comparatorを渡した場合は必ずソートが行われる。Comparatorの大小判断に基づき、昇順でソートが行われる。

    定義:
    インタフェース BatchUpdateSupport 内の executeBatch
    パラメータ:
    updateDAO - UpdateDAO
    comparator - Comparator<String>
    戻り値:
    SQLの実行結果
    関連項目:
    UpdateDAO

    executeBatch

    public int executeBatch(jp.terasoluna.fw.dao.UpdateDAO updateDAO,
                            String... sqlIdOrder)
    インタフェース BatchUpdateSupport の記述:
    バッチ実行を行う。

    バッチ実行が成功した場合は、保持しているバッチ実行SQLリストの削除を行う。

    本メソッドで実行する場合は、コンストラクタ引数で渡されたUpdateDAOは使用されない。
    UpdateDAOがnullの場合は、-100が返却される。

    第二引数以降に実行するSQL-IDを順番に設定することによりSQL実行順序を制御できる。
    sqlIdOrderにSQL-IDを指定した場合は、必ずその順番でSQLが実行される。
    また、その際はsqlIdOrderに指定されていないSQL-IDが存在した場合は実行されずに-200が返却される。

    定義:
    インタフェース BatchUpdateSupport 内の executeBatch
    パラメータ:
    updateDAO - UpdateDAO
    sqlIdOrder - SQL-IDの実行順序を指定する
    戻り値:
    SQLの実行結果
    関連項目:
    UpdateDAO

    executeBatch

    protected int executeBatch(jp.terasoluna.fw.dao.UpdateDAO updateDAO,
                               Comparator<String> comparator,
                               String[] sqlIdOrder)
    バッチ実行を行う。

    パラメータ:
    updateDAO - UpdateDAO
    comparator - Comparator<String>
    sqlIdOrder - SQL-IDの実行順序を指定する
    戻り値:
    SQLの実行結果

    sort

    public void sort()
    インタフェース BatchUpdateSupport の記述:
    バッチ実行SQLリストのソートを行う。

    executeBatchやgetSqlHolderListを実行する前に本メソッドを実行することで、
    SQLの実行順序をSQL-IDの昇順に並び替えることができる。

    ※本メソッド実行タイミングで実際に内部でソートが行われるかどうかは規定しない

    定義:
    インタフェース BatchUpdateSupport 内の sort

    sort

    public void sort(Comparator<String> comparator)
    インタフェース BatchUpdateSupport の記述:
    バッチ実行SQLリストのソートを行う。

    executeBatchやgetSqlHolderListを実行する前に本メソッドを実行することで、
    SQLの実行順序をComparatorに従って並び替えることができる。

    Comparatorを渡すことによりSQLの並び替え順序を制御できる。
    (※Comparatorを渡した場合は必ずソートが行われる。Comparatorの大小判断に基づき、昇順でソートが行われる。)

    ※本メソッド実行タイミングで実際に内部でソートが行われるかどうかは規定しない

    定義:
    インタフェース BatchUpdateSupport 内の sort
    パラメータ:
    comparator - Comparator<String>

    clear

    public void clear()
    インタフェース BatchUpdateSupport の記述:
    バッチ実行SQLリストの内容を削除する。

    保持しているバッチ実行SQLリストの削除を行う。

    定義:
    インタフェース BatchUpdateSupport 内の clear

    size

    public long size()
    インタフェース BatchUpdateSupport の記述:
    バッチ実行SQLリストの登録件数を取得する。

    定義:
    インタフェース BatchUpdateSupport 内の size
    戻り値:
    バッチ実行SQLリストの登録件数

    getSqlHolderList

    public List<jp.terasoluna.fw.dao.SqlHolder> getSqlHolderList()
    インタフェース BatchUpdateSupport の記述:
    SQL-IDで整列されたSqlHolderリストを取得する。

    保持しているバッチ実行SQLリストをSQL-ID順に整列したリストを返却する。

    ※本メソッドを実行しても保持しているバッチ実行SQLリストは削除されない。

    定義:
    インタフェース BatchUpdateSupport 内の getSqlHolderList
    戻り値:
    SqlHolderリスト

    getSqlHolderList

    public List<jp.terasoluna.fw.dao.SqlHolder> getSqlHolderList(Comparator<String> comparator)
    インタフェース BatchUpdateSupport の記述:
    SQL-IDで整列されたSqlHolderリストを取得する。

    保持しているバッチ実行SQLリストをSQL-ID順に整列したリストを返却する。

    ※本メソッドを実行しても保持しているバッチ実行SQLリストは削除されない。

    Comparatorを渡すことによりSQLの並び替え順序を制御できる。
    ※Comparatorを渡した場合は必ずソートが行われる。Comparatorの大小判断に基づき、昇順でソートが行われる。

    定義:
    インタフェース BatchUpdateSupport 内の getSqlHolderList
    パラメータ:
    comparator - Comparator<String>
    戻り値:
    SqlHolderリスト

    getSqlHolderList

    public List<jp.terasoluna.fw.dao.SqlHolder> getSqlHolderList(String... sqlIdOrder)
    インタフェース BatchUpdateSupport の記述:
    SQL-IDで整列されたSqlHolderリストを取得する。

    保持しているバッチ実行SQLリストをSQL-ID順に整列したリストを返却する。

    ※本メソッドを実行しても保持しているバッチ実行SQLリストは削除されない。

    実行するSQL-IDを順番に設定することにより取得すSqlHolderリストの順序を制御できる。
    sqlIdOrderにSQL-IDを指定した場合は、必ずその順番でSQLが並び替えられる。
    また、その際はsqlIdOrderに指定されていないSQL-IDが存在した場合はnullが返却される。

    定義:
    インタフェース BatchUpdateSupport 内の getSqlHolderList
    パラメータ:
    sqlIdOrder - SQL-IDの実行順序を指定する
    戻り値:
    SqlHolderリスト

    getSqlHolderList

    protected List<jp.terasoluna.fw.dao.SqlHolder> getSqlHolderList(Comparator<String> comparator,
                                                                    String[] sqlIdOrder)
    SQL-IDで整列されたSqlHolderリストを取得する。

    パラメータ:
    comparator - Comparator<String>
    sqlIdOrder - SQL-IDの実行順序を指定する
    戻り値:
    SqlHolderリスト


    Copyright © 2011. All Rights Reserved.