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

機能階層
DB検索, DB登録
バージョン
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 を返します。
 int getErrorCode()
          エラーコード を取得します。
 ErrorMessage getErrorMessage()
          エラーメッセージオブジェクト を取得します。
 int getExecuteCount()
          クエリーの実行結果を返します。
 java.lang.String getLang()
          内部のリソースを元に言語コード を返します。
 int getMaxRowCount()
          データベースの最大検索件数を返します。
 int getSkipRowCount()
          データベースの検索スキップ件数を返します。
 java.lang.String getStatement()
          ステートメント文字列を取り出します。
 void init()
          Query オブジェクトを初期化します。
 boolean isUpdate()
          アップデートフラグを取得します。
 void realClose()
          Connection オブジェクトを実際にクローズ(破棄)します。
 void rollback()
          ロールバックを行います。
protected  void setDBTableModel(DBTableModel table)
          DBTableModel をセットします。
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  java.lang.String type2ClassName(int type)
          カラムのタイプを表現する文字列値を返します。
 
クラス 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の使用)追加

setStatement

public void setStatement(java.lang.String stmt)
ステートメント文字列をセットします。

定義:
インタフェース Query 内の setStatement
パラメータ:
stmt - String
変更履歴:
3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。

getStatement

public java.lang.String getStatement()
ステートメント文字列を取り出します。

定義:
インタフェース Query 内の getStatement
戻り値:
stmtString String

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 (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 - String
dbArrayType - String
sysArg - DBSysArg[]
userArg - DBUserArg[]
変更履歴:
4.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 属性追加。

realClose

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

定義:
インタフェース Query 内の realClose
変更履歴:
3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
5.1.9.0 (2010/08/01) transaction 属性追加。

setExecuteCount

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

パラメータ:
executeCount - int
変更履歴:
3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。

getExecuteCount

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

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

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()
データベースの最大検索件数を返します。 データベース自体の検索は,指定されたSQLの全件を検索しますが, DBTableModelのデータとして登録する最大件数をこの値に設定します。 サーバーのメモリ資源と応答時間の確保の為です。

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

setMaxRowCount

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

定義:
インタフェース Query 内の setMaxRowCount
パラメータ:
maxRowCount - int
変更履歴:
3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
4.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 - int
変更履歴:
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 (2007/07/20) メソッド名変更( getUpdateFlag() ⇒ isUpdate() )

setResourceManager

public void setResourceManager(ResourceManager resource)
リソースマネージャーをセットします。 これは、言語(ロケール)に応じた DBColumn をあらかじめ設定しておく為に 必要です。 リソースマネージャーが設定されていない、または、所定のキーの DBColumn が リソースに存在しない場合は、内部で DBColumn オブジェクトを作成します。

定義:
インタフェース Query 内の setResourceManager
パラメータ:
resource - リソースマネージャー
変更履歴:
4.0.0 (2005/01/31) lang ⇒ ResourceManager へ変更

getLang

public java.lang.String getLang()
内部のリソースを元に言語コード を返します。 内部にリソースが登録されていない場合は, null を返します。

戻り値:
言語コード

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 - エラーメッセージオブジェクト

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 (2006/01/31) CLOB カラムかどうかを判定しCLOBの場合は、ストリームから値を取り出します。

getConnection

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

戻り値:
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 属性追加。

setTransaction

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

定義:
インタフェース Query 内の setTransaction
パラメータ:
connID - String
tran - Transaction
変更履歴:
5.1.9.0 (2010/08/01) 新規追加

type2ClassName

protected java.lang.String type2ClassName(int type)
カラムのタイプを表現する文字列値を返します。 この文字列を用いて、CCSファイルでタイプごとの表示方法を 指定することができます。

パラメータ:
type - int
戻り値:
カラムのタイプを表現する文字列値
変更履歴:
2.1.1.1 (2002/11/15) その他のケースを、VARCHAR2 を返すように修正。
4.0.0 (2006/01/31) CLOB を追加

toString

public java.lang.String toString()
オブジェクトの識別子として,最後のクエリーを返します。

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

openGion 5.3.5.0

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