パッケージ org.opengion.fukurou.db

## クラス DBUpdater

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

-     public final class DBUpdater
      extends Object

  PreparedStatementを利用した更新処理を行う、簡易的なクラスです。 ParameterMetaDataの使用有無を指定することで、ﾊﾟﾗﾒｰﾀを処理する際に、 sqlType を使用するかどうかを指定します。 また、データ登録時のバッチサイズに基づいた処理を行っています。 execute(String[]) で、行ごとのパラメータデータを渡します。 一番最後に、execEnd() を呼ぶことで、更新件数を返します。 更新件数を取得しない場合でも、このメソッドを呼んでください。 このクラスは、マルチスレッドに対応していません。
  バージョン
    6.9
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK9.0,

- - ### コンストラクタの概要

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

  - ### メソッドの概要

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッド | 説明
    --- | --- | ---
    `int` | `execEnd()` | データの最後の処理を行います。
    `void` | `execute​(String[] values)` | データ配列を渡してPreparedStatementの引数に、値をセットします。
    `int` | `update​(String[] values)` | データ配列を渡してPreparedStatementの引数に、値をセットします。

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

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

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

    - #### DBUpdater

          public DBUpdater​(int prmSize,
                           PreparedStatement pstmt)

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

    - #### DBUpdater

          public DBUpdater​(int prmSize,
                           PreparedStatement pstmt,
                           boolean usePMeta)

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

    - #### DBUpdater

          public DBUpdater​(int prmSize,
                           PreparedStatement pstmt,
                           boolean usePMeta,
                           boolean[] isTime)

      PreparedStatementと、sqlTypeの使用有無を指定して、インスタンスを作成します。 usePMetaは、内部で、ParameterMetaData を作成して、sqlType を使用するかどうかを 指定します。ORACLEのようなタイプの
      パラメータ:
        `prmSize` - パラメータの個数
        `pstmt` - PreparedStatementオブジェクト
        `usePMeta` - sqlType を使用するかどうか [true:使用する/false:使用しない]
        `isTime` - sqlType を使用するかどうか [true:使用する/false:使用しない]
      変更履歴:
        7.2.9.1 (2020/10/23) isTimeのメソッドを統合します。

  - ### メソッドの詳細

    - #### execute

          public void execute​(String[] values)
                       throws SQLException

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

    - #### update

          public int update​(String[] values)
                     throws SQLException

      データ配列を渡してPreparedStatementの引数に、値をセットします。
      パラメータ:
        `values` - ？に割り当てる設定値
      戻り値:
        更新件数
      例外:
        `SQLException` - DB処理の実行に失敗した場合
      変更履歴:
        7.2.9.1 (2020/10/23) TableUpdateParamTag のマージ(UPDATE,INSERT)対応

    - #### execEnd

          public int execEnd()
                      throws SQLException

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