パッケージ 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 int
StringBilderなどの初期値を設定します。protected static final String
システムの改行コードを設定します。protected static final int
6.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 void
createTableModel
(ResultSet resultSet) ResultSet を DBTableModelに割り当てます。void
execute
(int[] rowNo, DBTableModel table) 引数配列付のクエリーを実行します。void
引数配列付のクエリーを実行します。void
引数配列付のクエリーを実行します。void
引数配列付のクエリーを実行します。protected void
execute
(ExceptionBiConsumer<CallableStatement, Connection> biConsumer, String clsName) Oracle関係のPL/SQLなどを処理する 共通メソッド これは、execute 処理の中でも、Oracle系 CallableStatement の共通処理部分です。protected Connection
ConnectionFactory.connection( String ); を利用して、Connection オブジェクトを取り出します。実行結果の DBTableModel を返します。protected DBEditConfig
編集設定オブジェクトを取得します。int
エラーコード を取得します。エラーメッセージオブジェクト を取得します。int
クエリーの実行結果を返します。int
データベースの最大検索件数を返します。String[]
ステートメント文字列(UPDATE,INSERT,SELECT)を取り出します。int
データベースの検索スキップ件数を返します。ステートメント文字列を取り出します。boolean
isUpdate()
アップデートフラグを取得します。void
setConnection
(Connection conn) Connectionオブジェクトを外部から設定します。protected void
setDBTableModel
(DBTableModel table) DBTableModel をセットします。void
setEditConfig
(DBEditConfig config) 編集設定オブジェクトをセットします。protected void
setErrorCode
(int cd) エラーコード をセットします。protected void
エラーメッセージオブジェクト をセットします。protected void
setExecuteCount
(int executeCount) クエリーの実行結果件数をセットします。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 stmt) ステートメント文字列をセットします。protected void
setUpdateFlag
(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から順番にセットしていきます。 ※ このクラスでは実装されていません。 -
execute
protected void execute(ExceptionBiConsumer<CallableStatement, Connection> biConsumer, String clsName) Oracle関係のPL/SQLなどを処理する 共通メソッド これは、execute 処理の中でも、Oracle系 CallableStatement の共通処理部分です。 引数の ExceptionBiConsumer で、各サブクラスの個別のパラメータ設定処理を行います。- パラメータ:
biConsumer
- CallableStatementとConnectionを受け取って結果を返さない関数型インタフェースclsName
- エラーメッセージ生成時のサブクラス名- 変更履歴:
- 8.5.6.1 (2024/03/29) Oracle関係のPL/SQLなどを処理する
-
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
オブジェクトの識別子として、最後のクエリーを返します。
-