パッケージ 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_JDBCTableMerge,Query_JDBCTableUpdate,Query_JDBCUpdate
Query インターフェースを継承した Query の実装クラスです。
クエリークラスにステートメントを与えて execute()することにより内部に DBTableModel を
作成します。
このクラスは、Abstract クラスのため、実装は個々のサブクラスで行います。
唯一実装する必要があるのは, execute() メソッドだけです。
- 機能分類
- DB検索, DB登録
- 導入されたバージョン:
- JDK5.0,
-
フィールドの概要
フィールド修飾子とタイプフィールド説明static final String内部オブジェクトタイプ名 "ARG_ARRAY"protected static final intStringBilderなどの初期値を設定します。protected static final Stringシステムの改行コードを設定します。protected static final int6.9.3.0 (2018/03/26) データ検索時のフェッチサイズ 251protected static final intデータ検索時の最大処理制限時間static final String内部オブジェクトタイプ名 "ERR_MSG"static final String内部オブジェクトタイプ名 "ERR_MSG_ARRAY"static final String内部オブジェクトタイプ名 "SYSARG_ARRAY" -
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明protected voidcreateTableModel(ResultSet resultSet) ResultSet を DBTableModelに割り当てます。voidexecute(int[] rowNo, DBTableModel table) 引数配列付のクエリーを実行します。void引数配列付のクエリーを実行します。void引数配列付のクエリーを実行します。void引数配列付のクエリーを実行します。protected ConnectionConnectionFactory.connection( String ); を利用して,Connection オブジェクトを取り出します。実行結果の DBTableModel を返します。protected DBEditConfig編集設定オブジェクトを取得します。intエラーコード を取得します。エラーメッセージオブジェクト を取得します。intクエリーの実行結果を返します。intデータベースの最大検索件数を返します。String[]ステートメント文字列(UPDATE,INSERT,SELECT)を取り出します。intデータベースの検索スキップ件数を返します。ステートメント文字列を取り出します。booleanisUpdate()アップデートフラグを取得します。voidsetConnection(Connection conn) Connectionオブジェクトを外部から設定します。protected voidsetDBTableModel(DBTableModel table) DBTableModel をセットします。voidsetEditConfig(DBEditConfig config) 編集設定オブジェクトをセットします。protected voidsetErrorCode(int cd) エラーコード をセットします。protected voidエラーメッセージオブジェクト をセットします。protected voidsetExecuteCount(int executeCount) クエリーの実行結果件数をセットします。voidsetMaxRowCount(int maxRowCount) データベースの最大検索件数をセットします。voidsetMergeStatement(String update, String insert, String select) ステートメント文字列(UPDATE,INSERT)をセットします。voidsetResourceManager(ResourceManager resource) リソースマネージャーをセットします。voidsetSkipRowCount(int skipRowCount) データベースの検索スキップ件数をセットします。voidsetStatement(String stmt) ステートメント文字列をセットします。protected voidsetUpdateFlag(boolean up) アップデートフラグをセットします。toString()オブジェクトの識別子として,最後のクエリーを返します。protected booleanこの接続が、PreparedStatement#getParameterMetaData() を使用するかどうかを判定します。
-
フィールド詳細
-
CR
システムの改行コードを設定します。 -
BUFFER_MIDDLE
StringBilderなどの初期値を設定します。 200- 関連項目:
-
DB_MAX_QUERY_TIMEOUT
データ検索時の最大処理制限時間 -
DB_FETCH_SIZE
6.9.3.0 (2018/03/26) データ検索時のフェッチサイズ 251- 関連項目:
-
ARG_ARRAY
内部オブジェクトタイプ名 "ARG_ARRAY"- 関連項目:
-
SYSARG_ARRAY
内部オブジェクトタイプ名 "SYSARG_ARRAY"- 関連項目:
-
ERR_MSG
内部オブジェクトタイプ名 "ERR_MSG"- 関連項目:
-
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
Connectionオブジェクトを外部から設定します。 通常は、Transaction と 接続先(DBID) を使用して作成した Connection を渡します。 このクラスでは、Connection の close() や、ConnectionFactory への返却なども 行いません。それらは、外部処理(通常は、Transactionオブジェクト)で行います。 Connection には、null は登録できません。- 定義:
setConnectionインタフェース内Query- パラメータ:
conn- Connectionオブジェクト- 変更履歴:
- 6.3.6.1 (2015/08/28) 新規追加
-
setStatement
ステートメント文字列をセットします。- 定義:
setStatementインタフェース内Query- パラメータ:
stmt- ステートメント文字列- 変更履歴:
- 3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
-
getStatement
ステートメント文字列を取り出します。- 定義:
getStatementインタフェース内Query- 戻り値:
- ステートメント文字列
-
setMergeStatement
ステートメント文字列(UPDATE,INSERT)をセットします。- 定義:
setMergeStatementインタフェース内Query- パラメータ:
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
ステートメント文字列(UPDATE,INSERT,SELECT)を取り出します。- 定義:
getMergeStatementインタフェース内Query- 戻り値:
- ステートメント文字列の配列(UPDATE,INSERTの順番)
- 変更履歴:
- 7.2.9.1 (2020/10/23) TableUpdateParamTag のマージ(UPDATE,INSERT)対応, 7.2.9.3 (2020/11/06) 早い段階でエラーにしておきます。, 7.4.1.0 (2021/04/23) sqlType="MERGE" 時のみ有効で、where 条件で存在すれば何もしない
-
execute
引数配列付のクエリーを実行します。 処理自体は, #execute() と同様に、各サブクラスの実装に依存します。 これは、PreparedQuery で使用する引数を配列でセットするものです。 select * from emp where deptno = ? and job = ? などの PreparedQuery や { call xxxx( ?,?,? ) } などの CallableStatement の ? 部分の引数を 順番にセットしていきます。 ※ このクラスでは実装されていません。 -
execute
引数配列付のクエリーを実行します。 処理自体は, #execute() と同様に、各サブクラスの実装に依存します。 これは、PreparedQuery で使用する引数を配列でセットするものです。 select * from emp where deptno = ? and job = ? などの PreparedQuery の ? 部分の引数を 順番にセットしていきます。 ※ このクラスでは実装されていません。 -
execute
引数配列付のクエリーを実行します。 処理自体は, #execute() と同様に、各サブクラスの実装に依存します。 これは、PreparedQuery で使用する引数を配列でセットするものです。 select * from emp where deptno = ? and job = ? などの PreparedQuery の ? 部分の引数を 順番にセットしていきます。 ※ このクラスでは実装されていません。 -
execute
引数配列付のクエリーを実行します。 処理自体は, #execute() と同様に、各サブクラスの実装に依存します。 これは、PreparedQuery で使用する引数を配列でセットするものです。 select * from emp where deptno = ? and job = ? などの PreparedQuery の [カラム名] 部分の引数を、DBTableModelから順番にセットしていきます。 ※ このクラスでは実装されていません。 -
setExecuteCount
クエリーの実行結果件数をセットします。 初期値は -1 です。(クエリーが失敗した場合や,CallableStatement の呼び出し等で 実行件数が明確でない場合の戻り値)。- パラメータ:
executeCount- 実行結果件数- 変更履歴:
- 3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
-
getExecuteCount
クエリーの実行結果を返します。 クエリーが失敗した場合や,CallableStatement の呼び出し等で実行件数が明確でない 場合は, -1 が返されます。- 定義:
getExecuteCountインタフェース内Query- 戻り値:
- 実行結果件数
-
setDBTableModel
DBTableModel をセットします。 なお、検索系実行前に setDBTableModel() でテーブルをセットしていたとしても そのオブジェクトは破棄されて、新しい DBTableModel が生成されます。- パラメータ:
table- DBTableModelオブジェクト- 変更履歴:
- 3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
-
getDBTableModel
実行結果の DBTableModel を返します。- 定義:
getDBTableModelインタフェース内Query- 戻り値:
- DBTableModelオブジェクト
-
getMaxRowCount
データベースの最大検索件数を返します。 (初期値:DB_MAX_ROW_COUNT[=])。 データベース自体の検索は,指定されたSQLの全件を検索しますが, DBTableModelのデータとして登録する最大件数をこの値に設定します。0は無制限です。 サーバーのメモリ資源と応答時間の確保の為です。- 定義:
getMaxRowCountインタフェース内Query- 戻り値:
- 最大検索件数
-
setMaxRowCount
データベースの最大検索件数をセットします。 データベース自体の検索は,指定された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
データベースの検索スキップ件数を返します。 データベース自体の検索は,指定されたSQLの全件を検索しますが, DBTableModelのデータとしては、スキップ件数分は登録されません。 サーバーのメモリ資源と応答時間の確保の為です。- 定義:
getSkipRowCountインタフェース内Query- 戻り値:
- 最大検索件数
-
setSkipRowCount
データベースの検索スキップ件数をセットします。 データベース自体の検索は,指定されたSQLの全件を検索しますが, DBTableModelのデータとしては、スキップ件数分は登録されません。 サーバーのメモリ資源と応答時間の確保の為です。- 定義:
setSkipRowCountインタフェース内Query- パラメータ:
skipRowCount- スキップ件数- 変更履歴:
- 3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
-
setUpdateFlag
アップデートフラグをセットします。 これは、Query で更新処理の SQL 文を実行したときにセットされます。 更新処理が実行:true / 検索処理のみ:false をセットします。 このメソッドを呼び出さない場合は、デフォルト:true です。- パラメータ:
up- アップデートされたかどうか[true:更新処理/false:検索処理]- 変更履歴:
- 2.1.2.3 (2002/12/02) データベース更新時に、更新フラグをセットするように変更, 3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
-
isUpdate
アップデートフラグを取得します。 これは、Query で更新処理の SQL 文を実行したときに true にセットされます。 更新処理が実行:true / 検索処理のみ:false を取得できます。 -
setResourceManager
リソースマネージャーをセットします。 これは、言語(ロケール)に応じた DBColumn をあらかじめ設定しておく為に 必要です。 リソースマネージャーが設定されていない、または、所定のキーの DBColumn が リソースに存在しない場合は、内部で DBColumn オブジェクトを作成します。- 定義:
setResourceManagerインタフェース内Query- パラメータ:
resource- リソースマネージャー- 変更履歴:
- 4.0.0.0 (2005/01/31) lang ⇒ ResourceManager へ変更
-
getErrorCode
エラーコード を取得します。 エラーコード は、ErrorMessage クラスで規定されているコードです。- 定義:
getErrorCodeインタフェース内Query- 戻り値:
- エラーコード
-
setErrorCode
エラーコード をセットします。 エラーコード は、ErrorMessage クラスで規定されているコードです。- パラメータ:
cd- エラーコード
-
getErrorMessage
エラーメッセージオブジェクト を取得します。- 定義:
getErrorMessageインタフェース内Query- 戻り値:
- エラーメッセージオブジェクト
-
setErrorMessage
エラーメッセージオブジェクト をセットします。- パラメータ:
em- エラーメッセージオブジェクト
-
setEditConfig
編集設定オブジェクトをセットします。- 定義:
setEditConfigインタフェース内Query- パラメータ:
config- 編集設定オブジェクト- 変更履歴:
- 5.3.6.0 (2011/06/01) 新規追加
-
getEditConfig
編集設定オブジェクトを取得します。- 戻り値:
- 編集設定オブジェクト
- 変更履歴:
- 5.3.6.0 (2011/06/01) 新規追加
-
createTableModel
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
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
この接続が、PreparedStatement#getParameterMetaData() を使用するかどうかを判定します。 ConnectionFactory#useParameterMetaData(String) の結果を返します。(postgreSQL対応) ※ 暫定処理です。もっと、良い方法を考える必要があります。- 戻り値:
- 使用する場合:true / その他:false
- 関連項目:
- 変更履歴:
- 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
オブジェクトの識別子として,最後のクエリーを返します。
-