パッケージ 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,
    • コンストラクタの概要

      コンストラクタ 
      コンストラクタ 説明
      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の引数に、値をセットします。
      • クラスから継承されたメソッド java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • コンストラクタの詳細

      • 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:使用しない]
    • メソッドの詳細

      • 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 - データベース処理で例外が発生した場合。