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

# インタフェース Query

既知の実装クラスのリスト:
  `AbstractQuery`, `Query_JDBC`, `Query_JDBCArrayCallable`, `Query_JDBCCallable`, `Query_JDBCErrMsg`, `Query_JDBCKeyEntry`, `Query_JDBCPLSQL`, `Query_JDBCPrepared`, `Query_JDBCTableMerge`, `Query_JDBCTableUpdate`, `Query_JDBCUpdate`

public interface Query
ステートメント文を execute() する事により、データベースを検索した結果を DBTableModel に 割り当てるインターフェースです。 実際にこのインターフェースを継承したクラスでは、データベース以外に フラットファイルやXMLデータなどを読み込んで DBTableModel を作成させる 様な実装クラスを作成することができます。

機能分類
  データ表示, データ編集
導入されたバージョン:
  JDK5.0,

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `void`
  `execute(int[] rowNo, DBTableModel table)`
  引数配列付のクエリーを実行します。
  `void`
  `execute(String... args)`
  引数配列付のクエリーを実行します。
  `void`
  `execute(String[] keys, String... args)`
  引数配列付のクエリーを実行します。
  `void`
  `execute(String names, String dbArrayType, DBSysArg[] sysArg, DBUserArg[] userArg)`
  引数配列付のクエリーを実行します。
  `DBTableModel`
  `getDBTableModel()`
  実行結果の DBTableModel を返します。
  `int`
  `getErrorCode()`
  エラーコード を取得します。
  `ErrorMessage`
  `getErrorMessage()`
  エラーメッセージオブジェクト を取得します。
  `int`
  `getExecuteCount()`
  クエリーの実行結果を返します。
  `int`
  `getMaxRowCount()`
  データベースの最大検索件数を返します。
  `String[]`
  `getMergeStatement()`
  ステートメント文字列(UPDATE,INSERT,SELECT)を取り出します。
  `int`
  `getSkipRowCount()`
  データベースの検索スキップ件数を返します。
  `String`
  `getStatement()`
  ステートメント文字列を取り出します。
  `boolean`
  `isUpdate()`
  アップデートフラグを取得します。
  `void`
  `setConnection(Connection conn)`
  Connectionオブジェクトを外部から設定します。
  `void`
  `setEditConfig(DBEditConfig config)`
  編集設定オブジェクトをセットします。
  `void`
  `setMaxRowCount(int maxRowCount)`
  データベースの最大検索件数をセットします。
  `void`
  `setMergeStatement(String update, String insert, String select)`
  ステートメント文字列(UPDATE,INSERT)をセットします。
  `void`
  `setResourceManager(ResourceManager resource)`
  リソースマネージャーをセットします。
  `void`
  `setSkipRowCount(int skipRowCount)`
  データベースの検索スキップ件数をセットします。
  `void`
  `setStatement(String statement)`
  ステートメント文字列をセットします。

- ## メソッドの詳細

  - ### setConnection

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

  - ### setStatement

    void setStatement(String statement)
    ステートメント文字列をセットします。
    パラメータ:
      `statement` - ステートメント文字列

  - ### getStatement

    String getStatement()
    ステートメント文字列を取り出します。
    戻り値:
      ステートメント文字列

  - ### setMergeStatement

    void setMergeStatement(String update, String insert, String select)
    ステートメント文字列(UPDATE,INSERT)をセットします。
    パラメータ:
      `update` - UPDATEステートメント文字列
      `insert` - INSERTステートメント文字列
      `select` - SELECTステートメント文字列(あれば何もしない、なければINSERT処理の判定用)
    変更履歴:
      7.2.9.1 (2020/10/23) TableUpdateParamTag のマージ(UPDATE,INSERT)対応, 7.4.1.0 (2021/04/23) sqlType="MERGE" 時のみ有効で、where 条件で存在すれば何もしない

  - ### getMergeStatement

    String[] getMergeStatement()
    ステートメント文字列(UPDATE,INSERT,SELECT)を取り出します。
    戻り値:
      ステートメント文字列の配列(UPDATE,INSERTの順番)
    変更履歴:
      7.2.9.1 (2020/10/23) TableUpdateParamTag のマージ(UPDATE,INSERT)対応

  - ### execute

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

  - ### execute

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

  - ### execute

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

  - ### execute

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

  - ### getExecuteCount

    int getExecuteCount()
    クエリーの実行結果を返します。 クエリーが失敗した場合や、CallableStatement の呼び出し等で実行件数が明確でない 場合は、-1 が返されます。
    戻り値:
      クエリーの実行件数

  - ### getDBTableModel

    DBTableModel getDBTableModel()
    実行結果の DBTableModel を返します。
    戻り値:
      DBTableModelオブジェクト

  - ### getMaxRowCount

    int getMaxRowCount()
    データベースの最大検索件数を返します。 データベース自体の検索は、指定されたSQLの全件を検索しますが、 DBTableModelのデータとして登録する最大件数をこの値に設定します。 サーバーのメモリ資源と応答時間の確保の為です。
    戻り値:
      最大検索件数

  - ### setMaxRowCount

    void setMaxRowCount(int maxRowCount)
    データベースの最大検索件数をセットします。 データベース自体の検索は、指定されたSQLの全件を検索しますが、 DBTableModelのデータとして登録する最大件数をこの値に設定します。 サーバーのメモリ資源と応答時間の確保の為です。
    パラメータ:
      `maxRowCount` - 最大検索件数

  - ### getSkipRowCount

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

  - ### setSkipRowCount

    void setSkipRowCount(int skipRowCount)
    データベースの検索スキップ件数をセットします。 データベース自体の検索は、指定されたSQLの全件を検索しますが、 DBTableModelのデータとしては、スキップ件数分は登録されません。 サーバーのメモリ資源と応答時間の確保の為です。
    パラメータ:
      `skipRowCount` - スキップ件数

  - ### isUpdate

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

  - ### setResourceManager

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

  - ### getErrorCode

    int getErrorCode()
    エラーコード を取得します。 エラーコード は、ErrorMessage クラスで規定されているコードです。
    戻り値:
      エラーコード

  - ### getErrorMessage

    ErrorMessage getErrorMessage()
    エラーメッセージオブジェクト を取得します。
    戻り値:
      エラーメッセージオブジェクト

  - ### setEditConfig

    void setEditConfig(DBEditConfig config)
    編集設定オブジェクトをセットします。
    パラメータ:
      `config` - 編集設定オブジェクト
    変更履歴:
      5.3.6.0 (2011/06/01) 新規追加