概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
openGion 5.7.2.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## org.opengion.hayabusa.db
クラス AbstractQuery

    java.lang.Object
      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() メソッドだけです。

機能分類
  ＤＢ検索, ＤＢ登録
バージョン
  4.0
作成者
  Kazuhiko Hasegawa
導入されたバージョン:
  JDK5.0,

フィールドの概要
`static java.lang.String` | `ARG_ARRAY` 内部オブジェクトタイプ名 "ARG_ARRAY"
`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"

コンストラクタの概要
`AbstractQuery()`

メソッドの概要
`void` | `close()` 使用した Statementオブジェクトをクロースし、Connection オブジェクトを プールに返します。
`void` | `commit()` コミットを行います。
`protected void` | `createTableModel(java.sql.ResultSet resultSet)` ResultSet を DBTableModelに割り当てます。
`void` | `execute()` クエリーを実行します。
`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()` ステートメント文字列を取り出します。
`void` | `init()` Queryオブジェクトを初期化します。
`boolean` | `isUpdate()` アップデートフラグを取得します。
`void` | `realClose()` Connection オブジェクトを実際にクローズ(破棄)します。
`void` | `rollback()` ロールバックを行います。
`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)` ステートメント文字列をセットします。
`void` | `setTransaction(java.lang.String connID, Transaction tran)` Transactionオブジェクトを外部から設定します。
`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`

フィールドの詳細

### DB_MAX_QUERY_TIMEOUT

    protected static final int DB_MAX_QUERY_TIMEOUT

### 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

    public AbstractQuery()

メソッドの詳細

### init

    public void init()

  Queryオブジェクトを初期化します。 これは、QueryFactory のプールから取り出すときに(または戻すとき)に 初期化するのに使用します。

  定義:
    インタフェース `Query` 内の `init`
  変更履歴:

    3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
    3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfoオブジェクトを設定
    5.1.9.0 (2010/08/01) transaction 属性(外部Transactionの使用)追加
    5.3.6.0 (2011/06/01) DBEditConfig 追加

### setStatement

    public void setStatement(java.lang.String stmt)

  ステートメント文字列をセットします。

  定義:
    インタフェース `Query` 内の `setStatement`
  パラメータ:
    `stmt` - ステートメント文字列
  変更履歴:

    3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。

### getStatement

    public java.lang.String getStatement()

  ステートメント文字列を取り出します。

  定義:
    インタフェース `Query` 内の `getStatement`
  戻り値:
    ステートメント文字列

### execute

    public void execute()

  クエリーを実行します。 実行方法等は各サブクラスの実装に依存します。 セットされているステートメント文字列とそのタイプが合っていない場合は, エラーになります。 実行結果は、DBTableModel にセットされます。 実行結果の件数は #getExecuteCount() で取得できます。 ※ このクラスでは実装されていません。

  定義:
    インタフェース `Query` 内の `execute`
  変更履歴:

    3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。

### execute

    public void execute(java.lang.String[] args)

  引数配列付のクエリーを実行します。 処理自体は, #execute() と同様に、各サブクラスの実装に依存します。 これは、PreparedQuery で使用する引数を配列でセットするものです。 select * from emp where deptno = ? and job = ? などの PreparedQuery や { call xxxx( ?,?,? ) } などの CallableStatement の ? 部分の引数を 順番にセットしていきます。 ※ このクラスでは実装されていません。

  定義:
    インタフェース `Query` 内の `execute`
  パラメータ:
    `args` - オブジェクトの引数配列

### execute

    public void execute(java.lang.String[] keys,
                        java.lang.String[] args)

  引数配列付のクエリーを実行します。 処理自体は, #execute() と同様に、各サブクラスの実装に依存します。 これは、PreparedQuery で使用する引数を配列でセットするものです。 select * from emp where deptno = ? and job = ? などの PreparedQuery の ? 部分の引数を 順番にセットしていきます。 ※ このクラスでは実装されていません。

  定義:
    インタフェース `Query` 内の `execute`
  パラメータ:
    `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 の ? 部分の引数を 順番にセットしていきます。 ※ このクラスでは実装されていません。

  定義:
    インタフェース `Query` 内の `execute`
  パラメータ:
    `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から順番にセットしていきます。 ※ このクラスでは実装されていません。

  定義:
    インタフェース `Query` 内の `execute`
  パラメータ:
    `rowNo` - 選択された行番号配列(登録する対象行)
    `table` - DBTableModelオブジェクト(登録する元データ)

### commit

    public void commit()

  コミットを行います。 外部からコネクションが与えられた場合は、何も行いません。

  定義:
    インタフェース `Query` 内の `commit`
  変更履歴:

    3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
    3.8.0.8 (2005/10/03) エラーメッセージの出力順をメッセージ＋Queryに変更します。
    5.1.9.0 (2010/08/01) transaction 属性追加。

### rollback

    public void rollback()

  ロールバックを行います。 外部からコネクションが与えられた場合は、何も行いません。

  定義:
    インタフェース `Query` 内の `rollback`
  変更履歴:

    3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
    3.8.0.8 (2005/10/03) エラーメッセージの出力順をメッセージ＋Queryに変更します。
    5.1.9.0 (2010/08/01) transaction 属性追加。

### close

    public void close()

  使用した Statementオブジェクトをクロースし、Connection オブジェクトを プールに返します。 主に、正常終了した場合のクローズ処理になります。 外部からコネクションが与えられた場合は、何も行いません。

  定義:
    インタフェース `Query` 内の `close`
  変更履歴:

    3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
    3.6.0.4 (2004/10/14) SQLWarning の取得(getWarning)をコメントアウトします。
    5.1.9.0 (2010/08/01) transaction 属性追加。
    5.3.8.0 (2011/08/01) Transaction発生箇所でclose()するため、ここではclose() しない。

### realClose

    public void realClose()

  Connection オブジェクトを実際にクローズ(破棄)します。 プールからも削除します。 実行時エラー等が発生したときに、このメソッドを呼び出します。 外部からコネクションが与えられた場合は、何も行いません。

  定義:
    インタフェース `Query` 内の `realClose`
  変更履歴:

    3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
    5.1.9.0 (2010/08/01) transaction 属性追加。
    5.3.8.0 (2011/08/01) Transaction発生箇所でclose()するため、ここではclose() しない。

### setExecuteCount

    protected void setExecuteCount(int executeCount)

  クエリーの実行結果件数をセットします。 初期値は -1 です。(クエリーが失敗した場合や,CallableStatement の呼び出し等で 実行件数が明確でない場合の戻り値)。

  パラメータ:
    `executeCount` - 実行結果件数
  変更履歴:

    3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。

### getExecuteCount

    public int getExecuteCount()

  クエリーの実行結果を返します。 クエリーが失敗した場合や,CallableStatement の呼び出し等で実行件数が明確でない 場合は, -1 が返されます。

  定義:
    インタフェース `Query` 内の `getExecuteCount`
  戻り値:
    実行結果件数

### setDBTableModel

    protected void setDBTableModel(DBTableModel table)

  DBTableModel をセットします。 なお、検索系実行前に setDBTableModel() でテーブルをセットしていたとしても そのオブジェクトは破棄されて、新しい DBTableModel が生成されます。

  パラメータ:
    `table` - DBTableModelオブジェクト
  変更履歴:

    3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。

### getDBTableModel

    public DBTableModel getDBTableModel()

  実行結果の DBTableModel を返します。

  定義:
    インタフェース `Query` 内の `getDBTableModel`
  戻り値:
    DBTableModelオブジェクト

### getMaxRowCount

    public int getMaxRowCount()

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

  定義:
    インタフェース `Query` 内の `getMaxRowCount`
  戻り値:
    最大検索件数

### setMaxRowCount

    public void setMaxRowCount(int maxRowCount)

  データベースの最大検索件数をセットします。 データベース自体の検索は,指定されたSQLの全件を検索しますが, DBTableModelのデータとして登録する最大件数をこの値に設定します。 サーバーのメモリ資源と応答時間の確保の為です。 ゼロ、または、負の値を設定すると、無制限(Integer.MAX_VALUE)になります。

  定義:
    インタフェース `Query` 内の `setMaxRowCount`
  パラメータ:
    `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のデータとしては、スキップ件数分は登録されません。 サーバーのメモリ資源と応答時間の確保の為です。

  定義:
    インタフェース `Query` 内の `getSkipRowCount`
  戻り値:
    最大検索件数

### setSkipRowCount

    public void setSkipRowCount(int skipRowCount)

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

  定義:
    インタフェース `Query` 内の `setSkipRowCount`
  パラメータ:
    `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 を取得できます。

  定義:
    インタフェース `Query` 内の `isUpdate`
  戻り値:
    アップデートされたかどうか[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 オブジェクトを作成します。

  定義:
    インタフェース `Query` 内の `setResourceManager`
  パラメータ:
    `resource` - リソースマネージャー
  変更履歴:

    4.0.0.0 (2005/01/31) lang ⇒ ResourceManager へ変更

### getErrorCode

    public int getErrorCode()

  エラーコード を取得します。 エラーコード は、ErrorMessage クラスで規定されているコードです。

  定義:
    インタフェース `Query` 内の `getErrorCode`
  戻り値:
    エラーコード

### setErrorCode

    protected void setErrorCode(int cd)

  エラーコード をセットします。 エラーコード は、ErrorMessage クラスで規定されているコードです。

  パラメータ:
    `cd` - エラーコード

### getErrorMessage

    public ErrorMessage getErrorMessage()

  エラーメッセージオブジェクト を取得します。

  定義:
    インタフェース `Query` 内の `getErrorMessage`
  戻り値:
    エラーメッセージオブジェクト

### setErrorMessage

    protected void setErrorMessage(ErrorMessage em)

  エラーメッセージオブジェクト をセットします。

  パラメータ:
    `em` - エラーメッセージオブジェクト

### setEditConfig

    public void setEditConfig(DBEditConfig config)

  エディット設定オブジェクトをセットします。

  定義:
    インタフェース `Query` 内の `setEditConfig`
  パラメータ:
    `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に移動＆集計機能対応

### getConnection

    protected java.sql.Connection getConnection()

  ConnectionFactory.connection( String ); を利用して,Connection オブジェクトを取り出します。 コネクションプールが一杯の場合は、即エラーになります。 取り出しに失敗(コネクションプールが一杯)の場合は,内部的に DB_RETRY_TIME だけ待機して, DB_RETRY_COUNT 回数だけ,試行します。 それでも取り出せない場合は, HybsSystemException を throw します。

  戻り値:
    コネクション
  変更履歴:

    3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
    3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfoオブジェクトを設定
    5.1.9.0 (2010/08/01) transaction 属性追加。

### setTransaction

    public void setTransaction(java.lang.String connID,
                               Transaction tran)

  Transactionオブジェクトを外部から設定します。 通常は、ConnectionFactory を使用して、内部で Connection を作成しますが、 一連のトランザクション処理を実施するには、外部から Transactionオブジェクトを を与えて、そこから、Connection を取り出す必要があります。 ここでは、内部の connection が存在しない場合に限り、セットを許可します。

  定義:
    インタフェース `Query` 内の `setTransaction`
  パラメータ:
    `connID` - 接続先ID
    `tran` - Transactionオブジェクト
  変更履歴:

    5.1.9.0 (2010/08/01) 新規追加

### useParameterMetaData

    protected boolean useParameterMetaData()

  この接続が、PreparedStatement#getParameterMetaData() を使用するかどうかを判定します。 ConnectionFactory#useParameterMetaData(String) の結果を返します。(postgreSQL対応)

  戻り値:
    使用する場合：true / その他:false
  関連項目:
    `ConnectionFactory.useParameterMetaData(String)`
  変更履歴:

    5.3.8.0 (2011/08/01) 新規追加

### toString

    public java.lang.String toString()

  オブジェクトの識別子として，最後のクエリーを返します。

  オーバーライド:
    クラス `java.lang.Object` 内の `toString`
  戻り値:
    最後のクエリー

概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
| openGion 5.7.2.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

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