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