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

クラス AbstractQuery

  • すべての実装されたインタフェース:
    Query
    直系の既知のサブクラス:
    Query_JDBC, Query_JDBCArrayCallable, Query_JDBCCallable, Query_JDBCErrMsg, Query_JDBCKeyEntry, Query_JDBCPLSQL, Query_JDBCPrepared, Query_JDBCTableUpdate, Query_JDBCUpdate

    public class AbstractQuery
    extends java.lang.Object
    implements Query
    Query インターフェースを継承した Query の実装クラスです。 クエリークラスにステートメントを与えて execute()することにより内部に DBTableModel を 作成します。 このクラスは、Abstract クラスのため、実装は個々のサブクラスで行います。 唯一実装する必要があるのは, execute() メソッドだけです。
    機能分類
    DB検索, DB登録
    バージョン
    4.0
    作成者
    Kazuhiko Hasegawa
    導入されたバージョン:
    JDK5.0,
    • フィールドの概要

      フィールド 
      修飾子とタイプ フィールド 説明
      static java.lang.String ARG_ARRAY
      内部オブジェクトタイプ名 "ARG_ARRAY"
      protected static int BUFFER_MIDDLE
      StringBilderなどの初期値を設定します。
      protected static java.lang.String CR
      システムの改行コードを設定します。
      protected static int DB_FETCH_SIZE
      6.9.3.0 (2018/03/26) データ検索時のフェッチサイズ 251
      protected static int DB_MAX_QUERY_TIMEOUT
      データ検索時の最大処理制限時間
      static java.lang.String ERR_MSG
      内部オブジェクトタイプ名 "ERR_MSG"
      static java.lang.String ERR_MSG_ARRAY
      内部オブジェクトタイプ名 "ERR_MSG_ARRAY"
      static java.lang.String SYSARG_ARRAY
      内部オブジェクトタイプ名 "SYSARG_ARRAY"
    • コンストラクタの概要

      コンストラクタ 
      修飾子 コンストラクタ 説明
      protected AbstractQuery()
      デフォルトコンストラクター
    • メソッドの概要

      すべてのメソッド インスタンス・メソッド concreteメソッド 
      修飾子とタイプ メソッド 説明
      protected void createTableModel​(java.sql.ResultSet resultSet)
      ResultSet を DBTableModelに割り当てます。
      void execute​(int[] rowNo, DBTableModel table)
      引数配列付のクエリーを実行します。
      void execute​(java.lang.String... args)
      引数配列付のクエリーを実行します。
      void execute​(java.lang.String[] keys, java.lang.String... args)
      引数配列付のクエリーを実行します。
      void execute​(java.lang.String names, java.lang.String dbArrayType, DBSysArg[] sysArg, DBUserArg[] userArg)
      引数配列付のクエリーを実行します。
      protected java.sql.Connection getConnection()
      ConnectionFactory.connection( String ); を利用して,Connection オブジェクトを取り出します。
      DBTableModel getDBTableModel()
      実行結果の DBTableModel を返します。
      protected DBEditConfig getEditConfig()
      編集設定オブジェクトを取得します。
      int getErrorCode()
      エラーコード を取得します。
      ErrorMessage getErrorMessage()
      エラーメッセージオブジェクト を取得します。
      int getExecuteCount()
      クエリーの実行結果を返します。
      int getMaxRowCount()
      データベースの最大検索件数を返します。
      int getSkipRowCount()
      データベースの検索スキップ件数を返します。
      java.lang.String getStatement()
      ステートメント文字列を取り出します。
      boolean isUpdate()
      アップデートフラグを取得します。
      void setConnection​(java.sql.Connection conn)
      Connectionオブジェクトを外部から設定します。
      protected void setDBTableModel​(DBTableModel table)
      DBTableModel をセットします。
      void setEditConfig​(DBEditConfig config)
      編集設定オブジェクトをセットします。
      protected void setErrorCode​(int cd)
      エラーコード をセットします。
      protected void setErrorMessage​(ErrorMessage em)
      エラーメッセージオブジェクト をセットします。
      protected void setExecuteCount​(int executeCount)
      クエリーの実行結果件数をセットします。
      void setMaxRowCount​(int maxRowCount)
      データベースの最大検索件数をセットします。
      void setResourceManager​(ResourceManager resource)
      リソースマネージャーをセットします。
      void setSkipRowCount​(int skipRowCount)
      データベースの検索スキップ件数をセットします。
      void setStatement​(java.lang.String stmt)
      ステートメント文字列をセットします。
      protected void setUpdateFlag​(boolean up)
      アップデートフラグをセットします。
      java.lang.String toString()
      オブジェクトの識別子として,最後のクエリーを返します。
      protected boolean useParameterMetaData()
      この接続が、PreparedStatement#getParameterMetaData() を使用するかどうかを判定します。
      • クラスから継承されたメソッド java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • フィールドの詳細

      • CR

        protected static final java.lang.String CR
        システムの改行コードを設定します。
      • BUFFER_MIDDLE

        protected static final int BUFFER_MIDDLE
        StringBilderなどの初期値を設定します。 200
        関連項目:
        定数フィールド値
      • DB_MAX_QUERY_TIMEOUT

        protected static final int DB_MAX_QUERY_TIMEOUT
        データ検索時の最大処理制限時間
      • DB_FETCH_SIZE

        protected static final int DB_FETCH_SIZE
        6.9.3.0 (2018/03/26) データ検索時のフェッチサイズ 251
        関連項目:
        定数フィールド値
      • ARG_ARRAY

        public static final java.lang.String ARG_ARRAY
        内部オブジェクトタイプ名 "ARG_ARRAY"
        関連項目:
        定数フィールド値
      • SYSARG_ARRAY

        public static final java.lang.String SYSARG_ARRAY
        内部オブジェクトタイプ名 "SYSARG_ARRAY"
        関連項目:
        定数フィールド値
      • ERR_MSG

        public static final java.lang.String ERR_MSG
        内部オブジェクトタイプ名 "ERR_MSG"
        関連項目:
        定数フィールド値
      • ERR_MSG_ARRAY

        public static final java.lang.String ERR_MSG_ARRAY
        内部オブジェクトタイプ名 "ERR_MSG_ARRAY"
        関連項目:
        定数フィールド値
    • コンストラクタの詳細

      • AbstractQuery

        protected AbstractQuery()
        デフォルトコンストラクター
        変更履歴:
        6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
    • メソッドの詳細

      • setConnection

        public void setConnection​(java.sql.Connection conn)
        Connectionオブジェクトを外部から設定します。 通常は、Transaction と 接続先(DBID) を使用して作成した Connection を渡します。 このクラスでは、Connection の close() や、ConnectionFactory への返却なども 行いません。それらは、外部処理(通常は、Transactionオブジェクト)で行います。 Connection には、null は登録できません。
        定義:
        setConnection インタフェース内 Query
        パラメータ:
        conn - Connectionオブジェクト
        変更履歴:
        6.3.6.1 (2015/08/28) 新規追加
      • setStatement

        public void setStatement​(java.lang.String stmt)
        ステートメント文字列をセットします。
        定義:
        setStatement インタフェース内 Query
        パラメータ:
        stmt - ステートメント文字列
        変更履歴:
        3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
      • getStatement

        public java.lang.String getStatement()
        ステートメント文字列を取り出します。
        定義:
        getStatement インタフェース内 Query
        戻り値:
        ステートメント文字列
      • execute

        public void execute​(java.lang.String... args)
        引数配列付のクエリーを実行します。 処理自体は, #execute() と同様に、各サブクラスの実装に依存します。 これは、PreparedQuery で使用する引数を配列でセットするものです。 select * from emp where deptno = ? and job = ? などの PreparedQuery や { call xxxx( ?,?,? ) } などの CallableStatement の ? 部分の引数を 順番にセットしていきます。 ※ このクラスでは実装されていません。
        定義:
        execute インタフェース内 Query
        パラメータ:
        args - オブジェクトの引数配列(可変長引数)
        変更履歴:
        6.1.1.0 (2015/01/17) 引数配列を可変引数にして、execute() を含めて定義します。
      • execute

        public void execute​(java.lang.String[] keys,
                            java.lang.String... args)
        引数配列付のクエリーを実行します。 処理自体は, #execute() と同様に、各サブクラスの実装に依存します。 これは、PreparedQuery で使用する引数を配列でセットするものです。 select * from emp where deptno = ? and job = ? などの PreparedQuery の ? 部分の引数を 順番にセットしていきます。 ※ このクラスでは実装されていません。
        定義:
        execute インタフェース内 Query
        パラメータ:
        keys - オブジェクトのキー配列
        args - オブジェクトの引数配列(可変長引数)
        変更履歴:
        4.0.0.0 (2005/01/31) 新規追加
      • execute

        public void execute​(java.lang.String names,
                            java.lang.String dbArrayType,
                            DBSysArg[] sysArg,
                            DBUserArg[] userArg)
        引数配列付のクエリーを実行します。 処理自体は, #execute() と同様に、各サブクラスの実装に依存します。 これは、PreparedQuery で使用する引数を配列でセットするものです。 select * from emp where deptno = ? and job = ? などの PreparedQuery の ? 部分の引数を 順番にセットしていきます。 ※ このクラスでは実装されていません。
        定義:
        execute インタフェース内 Query
        パラメータ:
        names - カラム名(CSV形式)
        dbArrayType - アレイタイプ名称
        sysArg - DBSysArg配列
        userArg - DBUserArg配列
        変更履歴:
        4.0.0.0 (2005/01/31) 引数をすべて受け取って実行するメソッドを標準メソッドとして追加
      • execute

        public void execute​(int[] rowNo,
                            DBTableModel table)
        引数配列付のクエリーを実行します。 処理自体は, #execute() と同様に、各サブクラスの実装に依存します。 これは、PreparedQuery で使用する引数を配列でセットするものです。 select * from emp where deptno = ? and job = ? などの PreparedQuery の [カラム名] 部分の引数を、DBTableModelから順番にセットしていきます。 ※ このクラスでは実装されていません。
        定義:
        execute インタフェース内 Query
        パラメータ:
        rowNo - 選択された行番号配列(登録する対象行)
        table - DBTableModelオブジェクト(登録する元データ)
      • setExecuteCount

        protected void setExecuteCount​(int executeCount)
        クエリーの実行結果件数をセットします。 初期値は -1 です。(クエリーが失敗した場合や,CallableStatement の呼び出し等で 実行件数が明確でない場合の戻り値)。
        パラメータ:
        executeCount - 実行結果件数
        変更履歴:
        3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
      • getExecuteCount

        public int getExecuteCount()
        クエリーの実行結果を返します。 クエリーが失敗した場合や,CallableStatement の呼び出し等で実行件数が明確でない 場合は, -1 が返されます。
        定義:
        getExecuteCount インタフェース内 Query
        戻り値:
        実行結果件数
      • setDBTableModel

        protected void setDBTableModel​(DBTableModel table)
        DBTableModel をセットします。 なお、検索系実行前に setDBTableModel() でテーブルをセットしていたとしても そのオブジェクトは破棄されて、新しい DBTableModel が生成されます。
        パラメータ:
        table - DBTableModelオブジェクト
        変更履歴:
        3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
      • getDBTableModel

        public DBTableModel getDBTableModel()
        実行結果の DBTableModel を返します。
        定義:
        getDBTableModel インタフェース内 Query
        戻り値:
        DBTableModelオブジェクト
      • getMaxRowCount

        public int getMaxRowCount()
        データベースの最大検索件数を返します。 (初期値:DB_MAX_ROW_COUNT[=])。 データベース自体の検索は,指定されたSQLの全件を検索しますが, DBTableModelのデータとして登録する最大件数をこの値に設定します。0は無制限です。 サーバーのメモリ資源と応答時間の確保の為です。
        定義:
        getMaxRowCount インタフェース内 Query
        戻り値:
        最大検索件数
      • setMaxRowCount

        public void setMaxRowCount​(int maxRowCount)
        データベースの最大検索件数をセットします。 データベース自体の検索は,指定されたSQLの全件を検索しますが, DBTableModelのデータとして登録する最大件数をこの値に設定します。 サーバーのメモリ資源と応答時間の確保の為です。 ゼロ、または、負の値を設定すると、無制限(Integer.MAX_VALUE)になります。
        定義:
        setMaxRowCount インタフェース内 Query
        パラメータ:
        maxRowCount - 最大検索件数
        変更履歴:
        3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。, 4.0.0.0 (2005/08/31) ゼロ、または、負の値は、無制限(Integer.MAX_VALUE)にする。
      • getSkipRowCount

        public int getSkipRowCount()
        データベースの検索スキップ件数を返します。 データベース自体の検索は,指定されたSQLの全件を検索しますが, DBTableModelのデータとしては、スキップ件数分は登録されません。 サーバーのメモリ資源と応答時間の確保の為です。
        定義:
        getSkipRowCount インタフェース内 Query
        戻り値:
        最大検索件数
      • setSkipRowCount

        public void setSkipRowCount​(int skipRowCount)
        データベースの検索スキップ件数をセットします。 データベース自体の検索は,指定されたSQLの全件を検索しますが, DBTableModelのデータとしては、スキップ件数分は登録されません。 サーバーのメモリ資源と応答時間の確保の為です。
        定義:
        setSkipRowCount インタフェース内 Query
        パラメータ:
        skipRowCount - スキップ件数
        変更履歴:
        3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
      • setUpdateFlag

        protected void setUpdateFlag​(boolean up)
        アップデートフラグをセットします。 これは、Query で更新処理の SQL 文を実行したときにセットされます。 更新処理が実行:true / 検索処理のみ:false をセットします。 このメソッドを呼び出さない場合は、デフォルト:true です。
        パラメータ:
        up - アップデートされたかどうか[true:更新処理/false:検索処理]
        変更履歴:
        2.1.2.3 (2002/12/02) データベース更新時に、更新フラグをセットするように変更, 3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
      • isUpdate

        public boolean isUpdate()
        アップデートフラグを取得します。 これは、Query で更新処理の SQL 文を実行したときに true にセットされます。 更新処理が実行:true / 検索処理のみ:false を取得できます。
        定義:
        isUpdate インタフェース内 Query
        戻り値:
        アップデートされたかどうか[true:更新処理/false:検索処理]
        変更履歴:
        2.1.2.3 (2002/12/02) データベース更新時に、更新フラグをセットするように変更, 4.0.0.0 (2007/07/20) メソッド名変更( getUpdateFlag() ⇒ isUpdate() )
      • setResourceManager

        public void setResourceManager​(ResourceManager resource)
        リソースマネージャーをセットします。 これは、言語(ロケール)に応じた DBColumn をあらかじめ設定しておく為に 必要です。 リソースマネージャーが設定されていない、または、所定のキーの DBColumn が リソースに存在しない場合は、内部で DBColumn オブジェクトを作成します。
        定義:
        setResourceManager インタフェース内 Query
        パラメータ:
        resource - リソースマネージャー
        変更履歴:
        4.0.0.0 (2005/01/31) lang ⇒ ResourceManager へ変更
      • getErrorCode

        public int getErrorCode()
        エラーコード を取得します。 エラーコード は、ErrorMessage クラスで規定されているコードです。
        定義:
        getErrorCode インタフェース内 Query
        戻り値:
        エラーコード
      • setErrorCode

        protected void setErrorCode​(int cd)
        エラーコード をセットします。 エラーコード は、ErrorMessage クラスで規定されているコードです。
        パラメータ:
        cd - エラーコード
      • getErrorMessage

        public ErrorMessage getErrorMessage()
        エラーメッセージオブジェクト を取得します。
        定義:
        getErrorMessage インタフェース内 Query
        戻り値:
        エラーメッセージオブジェクト
      • setErrorMessage

        protected void setErrorMessage​(ErrorMessage em)
        エラーメッセージオブジェクト をセットします。
        パラメータ:
        em - エラーメッセージオブジェクト
      • setEditConfig

        public void setEditConfig​(DBEditConfig config)
        編集設定オブジェクトをセットします。
        定義:
        setEditConfig インタフェース内 Query
        パラメータ:
        config - 編集設定オブジェクト
        変更履歴:
        5.3.6.0 (2011/06/01) 新規追加
      • getEditConfig

        protected DBEditConfig getEditConfig()
        編集設定オブジェクトを取得します。
        戻り値:
        編集設定オブジェクト
        変更履歴:
        5.3.6.0 (2011/06/01) 新規追加
      • createTableModel

        protected void createTableModel​(java.sql.ResultSet resultSet)
        ResultSet を DBTableModelに割り当てます。 毎回,検索毎に,DBTableModel にコピーするイメージです。 ResulSet 以外のオブジェクトから,DBTableModelを作成する場合は, このメソッドをオーバーライドします。 このメソッドは, execute からのみ,呼び出されます。 それ以外からは呼出し出来ません。
        パラメータ:
        resultSet - ResultSetオブジェクト
        変更履歴:
        3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。, 3.3.3.3 (2003/08/06) カラムのラベル名を、大文字に変換する。, 3.8.5.0 (2006/03/02) CLOB カラムかどうかを判定しCLOBの場合は、Clob オブジェクトから文字列を取り出します。, 3.8.8.8 (2007/05/11) ROWID対応(小数点対応 "0.3" が ".3" と表示される対策), 4.0.0.0 (2006/01/31) CLOB カラムかどうかを判定しCLOBの場合は、ストリームから値を取り出します。, 5.3.6.0 (2011/06/01) DBTableModel作成処理をDBTableModelUtilに移動&集計機能対応, 6.3.6.1 (2015/08/28) close(),realClose() 廃止。Queryはキャッシュしません。
      • getConnection

        protected java.sql.Connection getConnection()
        ConnectionFactory.connection( String ); を利用して,Connection オブジェクトを取り出します。 コネクションプールが一杯の場合は、即エラーになります。
        戻り値:
        コネクション
        変更履歴:
        3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。, 3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfoオブジェクトを設定, 5.1.9.0 (2010/08/01) transaction 属性追加。, 6.3.6.1 (2015/08/28) transaction 属性廃止。内部のConnectionを返します。
      • useParameterMetaData

        protected boolean useParameterMetaData()
        この接続が、PreparedStatement#getParameterMetaData() を使用するかどうかを判定します。 ConnectionFactory#useParameterMetaData(String) の結果を返します。(postgreSQL対応) ※ 暫定処理です。もっと、良い方法を考える必要があります。
        戻り値:
        使用する場合:true / その他:false
        関連項目:
        ConnectionFactory.useParameterMetaData(String)
        変更履歴:
        5.3.8.0 (2011/08/01) 新規追加, 6.3.6.1 (2015/08/28) 内部変数にconnIDが無くなったため、直接所得することになりました。, 6.4.2.0 (2016/01/29) ex.printStackTrace() を、ThrowUtil#ogStackTrace(Throwable) に置き換え。
      • toString

        public java.lang.String toString()
        オブジェクトの識別子として,最後のクエリーを返します。
        オーバーライド:
        toString クラス内 java.lang.Object
        戻り値:
        最後のクエリー
        このメソッドは、nullを返しません