org.opengion.fukurou.db

## クラス DBUpdater

- java.lang.Object
- - org.opengion.fukurou.db.DBUpdater

-     public final class DBUpdater
      extends java.lang.Object

       PreparedStatementを利用した更新処理を行う、簡易的なクラスです。

       ParameterMetaDataの使用有無を指定することで、ﾊﾟﾗﾒｰﾀを処理する際に、
       sqlType を使用するかどうかを指定します。
       また、データ登録時のバッチサイズに基づいた処理を行っています。
       execute(String[]) で、行ごとのパラメータデータを渡します。
       一番最後に、execEnd() を呼ぶことで、更新件数を返します。

       このクラスは、マルチスレッドに対応していません。

  バージョン
    6.9
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK9.0,

- - ### フィールドのサマリー

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `static int` | `DB_BATCH_SIZE` 6.9.3.0 (2018/03/26) データ登録時のバッチサイズ 100

  - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `DBUpdater(int prmSize, java.sql.PreparedStatement pstmt)` PreparedStatement を指定して、インスタンスを作成します。
    `DBUpdater(int prmSize, java.sql.PreparedStatement pstmt, boolean usePMeta)` PreparedStatementと、sqlTypeの使用有無を指定して、インスタンスを作成します。

  - ### メソッドのサマリー

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `int` | `execEnd()` データの最後の処理を行います。
    `void` | `execute(java.lang.String[] values)` データ配列を渡してPreparedStatementの引数に、値をセットします。
    `void` | `execute(java.lang.String[] values, boolean[] isTime)` データ配列を渡してPreparedStatementの引数に、値をセットします。
    `void` | `setTimeStampClms(boolean[] isTime)` Timestamp オブジェクトを登録するカラムに、true をセットした配列を渡します。

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### フィールドの詳細

    - #### DB_BATCH_SIZE

          public static final int DB_BATCH_SIZE

      6.9.3.0 (2018/03/26) データ登録時のバッチサイズ 100
      関連項目:
        定数フィールド値

  - ### コンストラクタの詳細

    - #### DBUpdater

          public DBUpdater(int prmSize,
                           java.sql.PreparedStatement pstmt)

      PreparedStatement を指定して、インスタンスを作成します。 内部で、ParameterMetaData を作成して、sqlType を使用します。
      パラメータ:
        `prmSize` - パラメータの個数
        `pstmt` - PreparedStatementオブジェクト

    - #### DBUpdater

          public DBUpdater(int prmSize,
                           java.sql.PreparedStatement pstmt,
                           boolean usePMeta)

      PreparedStatementと、sqlTypeの使用有無を指定して、インスタンスを作成します。 usePMetaは、内部で、ParameterMetaData を作成して、sqlType を使用するかどうかを 指定します。ORACLEのようなタイプの
      パラメータ:
        `prmSize` - パラメータの個数
        `pstmt` - PreparedStatementオブジェクト
        `usePMeta` - sqlType を使用するかどうか [true:使用する/false:使用しない]

  - ### メソッドの詳細

    - #### setTimeStampClms

          public void setTimeStampClms(boolean[] isTime)

      Timestamp オブジェクトを登録するカラムに、true をセットした配列を渡します。 オラクル系の場合は、そのまま、setObject を行えば、自動変換しますが、 それ以外のDBでは、java.sql.Types を渡す必要があります。さらに、null 値も、setNullを使用します。 今は、pMeta が、null かどうかで、オラクル系か、どうかを判定するようにしています。
      パラメータ:
        `isTime` - ？に割り当てる設定値

    - #### execute

          public void execute(java.lang.String[] values)
                       throws java.sql.SQLException

      データ配列を渡してPreparedStatementの引数に、値をセットします。 オラクル系の場合は、そのまま、setObject を行えば、自動変換しますが、 それ以外のDBでは、java.sql.Types を渡す必要があります。さらに、null 値も、setNullを使用します。 今は、pMeta が、null かどうかで、オラクル系か、どうかを判定するようにしています。
      パラメータ:
        `values` - ？に割り当てる設定値
      例外:
        `java.sql.SQLException` - DB処理の実行に失敗した場合

    - #### execute

          public void execute(java.lang.String[] values,
                              boolean[] isTime)
                       throws java.sql.SQLException

      データ配列を渡してPreparedStatementの引数に、値をセットします。 Timestamp オブジェクトを登録する場合の特別版です。 過去のコーディングとの互換性の関係で、ParameterMetaData を使用しません。
      パラメータ:
        `values` - ？に割り当てる設定値
        `isTime` - Timestampを設定するカラムの場合は、true
      例外:
        `java.sql.SQLException` - DB処理の実行に失敗した場合

    - #### execEnd

          public int execEnd()
                      throws java.sql.SQLException

      データの最後の処理を行います。 具体的には、executeBatch() で、所定のバッチ数に届いていない場合の処理です。
      戻り値:
        更新件数
      例外:
        `java.sql.SQLException` - ﾃﾞｰﾀﾍﾞｰｽ処理で例外が発生した場合。

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.