クラス QueryTag
java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
jakarta.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.QueryTag
- すべての実装されたインタフェース:
BodyTag
,IterationTag
,JspTag
,Tag
,TryCatchFinally
,Serializable
- 直系の既知のサブクラス:
EntryQueryTag
,FileQueryTag
,GuiQueryTag
,PlsqlUpdateTag
,TableUpdateTag
データベースの検索を行うタグです。
このタグの内容に、SQL文を記述します。 whereタグ、 andタグ を使うと引数に応じて
実行されるSQL文が異なります(使用例参照)。
また、PL/SQLのSPで検索を行うときもこのタグを使います。
SystemData の USE_SQL_INJECTION_CHECK が true か、quotCheck 属性が true の場合は、
SQLインジェクション対策用のシングルクォートチェックを行います。リクエスト引数に
シングルクォート(')が含まれると、エラーになります。
同様にUSE_XSS_CHECKがtrueか、xssCheck属性がtrueの場合は、
クロスサイトススクリプティング(XSS)対策のためless/greater than signのチェックを行います。
実行後にリクエストパラメータに以下の値がセットされます。
DB.COUNT : 検索結果の件数
DB.ERR_CODE : 検索結果のエラーコード
DB.IS_UPDATE : 更新(=true)/検索(false)
※ このタグは、Transaction タグの対象です。
- 関連項目:
- 機能分類
- DB検索, DB登録
- 形式サンプル:
- ●形式: ・<og:query command="NEW" > SELECT文 </og:query> ・<og:query command="NEW" names="・・・" queryType="JDBCErrMsg" > { call PL/SQL(?,?,?,? ) } </og:query> ●body:あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します) ●Tag定義: <og:query queryType 【TAG】Query を発行する為のクラスID(JDBC,JDBCCallable,JDBCErrMsg,JDBCUpdate,JDBCPrepared)を指定します) command 【TAG】コマンド (NEW,RENEW)をセットします(PlsqlUpdateTag,UpdateTag の場合は、ENTRY) scope 【TAG】キャッシュする場合のスコープ[request/session/application]を指定します (初期値:session) maxRowCount 【TAG】(通常は使いません)データの最大読み込み件数を指定します (初期値:DB_MAX_ROW_COUNT[=1000])(0:[無制限]) skipRowCount 【TAG】(通常は使いません)データの読み始めの初期値を指定します displayMsg 【TAG】検索結果を画面上に表示するメッセージリソースIDを指定します (初期値:VIEW_DISPLAY_MSG[=]) overflowMsg 【TAG】検索データが最大検索数をオーバーした場合に表示するメッセージリソースIDを指定します (初期値:MSG0007[検索結果が、制限行数を超えましたので、残りはカットされました]) notfoundMsg 【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした]) names 【TAG】PL/SQLを利用する場合の引数にセットすべき データの名称をCSV形式で複数指定します stopZero 【TAG】検索結果が0件のとき処理を続行するかどうか[true/false]を指定します(初期値:false[続行する]) tableId 【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します dbid 【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します trace 【TAG】引数の SQL 文を EXPLAIN PLAN を[true:行う/それ以外:行わない]を指定します(初期値:false) checkNames 【TAG】リクエスト変数の正規化を行うカラムをCSV形式で複数指定します modifyType 【TAG】DB検索時の モディファイタイプを指定します[A:追加/C:更新/D:削除] stopError 【TAG】PLSQL/SQL処理エラーの時に処理を中止するかどうか[true/false]を設定します(初期値:true) dispError 【TAG】エラー時にメッセージを表示するか[true/false]を設定します。通常はstopErrorと併用(初期値:true) quotCheck 【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します(初期値:USE_SQL_INJECTION_CHECK) xssCheck 【TAG】リクエスト情報の HTMLTag開始/終了文字(><) 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_XSS_CHECK[=true]) mainTrans 【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:true) useBeforeHtmlTag 【TAG】処理時間(queryTime)などの情報出力[true:有効/false:無効]を指定します(初期値:true) useTimeView 【TAG】処理時間を表示する TimeView を表示するかどうかを指定します (初期値:VIEW_USE_TIMEBAR[=])。 useSLabel 【TAG】7.0.7.0 (2019/12/13) エラーメッセージにSLABELを利用するかどうか[true/false]を指定します(初期値:false) caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:判定しない) caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:判定しない) caseIf 【TAG】指定の値が、true/TRUE文字列の場合は、このタグは使用されます(初期値:判定しない) debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) > ... Body ... </og:query> ●使用例 <og:query command="NEW"> select PN,YOBI,NMEN,HINM from XX01 where PN = '{@PN}' order by PN </og:query> ・検索条件が入力された時({@PN}がNOT NULLのとき) 作成されるSQL文⇒select PN,YOBI,NMEN,HINM from XX01 where PN = 'AAA' order by PN ・検索条件が入力されなかった時({@PN}がNULLのとき) 作成されるSQL文⇒select PN,YOBI,NMEN,HINM from XX01 where PN = '' order by PN <og:query command="NEW"> select PN,YOBI,NMEN,HINM from XX01 <og:where> <og:and value="PN = '{@PN}%'" /> <og:and value="YOBI like '{@YOBI}%'" /> </og:where> order by PN </og:query> ・検索条件が入力された時({@PN}がNOT NULLのとき) 作成されるSQL文⇒select PN,YOBI,NMEN,HINM from XX01 PN = 'AAA%' and YOBI like 'BBB%' order by PN ・検索条件が入力されなかった時({@PN}がNULLのとき) WHERE句がなくなる。 作成されるSQL文⇒select PN,YOBI,NMEN,HINM from XX01 order by PN 注意:WhereTagを使った場合、下のようにはなりません。 select PN,YOBI,NMEN,HINM from XX01 PN = '' and YOBI like '%' order by PN <og:query command="NEW"> select PN,YOBI,NMEN,HINM from XX01 where PN="11111" <og:where startKey="and"> <og:and value="YOBI like '{@PN}%'" /> </og:where> order by PN </og:query> ・検索条件が入力された時({@YOBI}がNOT NULLのとき) 作成されるSQL文⇒select PN,YOBI,NMEN,HINM from XX01 PN = '11111' and YOBI like 'BBB%' order by PN ・検索条件が入力されなかった時({@YOBI}がNULLのとき) WHERE句がなくなる。 作成されるSQL文⇒select PN,YOBI,NMEN,HINM from XX01 PN = '11111' order by PN <og:query command = "NEW" names = "SYSTEM_ID,LANG,CLM,NAME_JA,LABEL_NAME,KBSAKU,USER.ID" checkNames = "CLM,NAME_JA" queryType = "JDBCErrMsg" displayMsg = ""> {call TYPE3B01.TYPE3B01(?,?,?,?)} </og:query> ・queryType に JDBCErrMsg を指定して、PL/SQL をコールできます。 引数は、names 属性をキーにリクエスト変数から読み込みます。 ・checkNames にカラム名を指定すると、columns.valueSet による リクエスト変数の正規化を行います。
- 導入されたバージョン:
- JDK5.0,
-
フィールドの概要
フィールド修飾子とタイプフィールド説明static final String
command 引数に渡す事の出来る コマンド 新規 "NEW"static final String
command 引数に渡す事の出来る コマンド 再検索 "RENEW"protected String
コマンドprotected boolean
5.9.26.1 (2017/11/10) 実行エラーの際に、エラーを画面に出力するかどうか。protected String
ディスプレイメッセージprotected long
3.5.4.7 (2004/02/06) 実行時間測定用のDIV要素を出力します。protected static final String
エラーメッセージID "h_errMsg"protected int
エラーコードprotected ErrorMessage
エラーメッセージprotected int
実行件数protected int
最大行数protected String
名前列protected boolean
アウトメッセージprotected boolean
クオートチェックprotected int
スキップ行数protected String
検索文protected boolean
4.3.3.0 (2008/09/22) PLSQL/SQL実行エラーの際に、処理を中止するかどうか。protected DBTableModel
テーブルモデルprotected String
テーブルIDprotected boolean
SLABELを利用するかどうかprotected boolean
タイムバーを使用するかどうかprotected boolean
XSSチェッククラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport
BR, BUFFER_MIDDLE, CR
クラスから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTagSupport
bodyContent
クラスから継承されたフィールド jakarta.servlet.jsp.tagext.TagSupport
id, pageContext
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTag
EVAL_BODY_BUFFERED, EVAL_BODY_TAG
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.IterationTag
EVAL_BODY_AGAIN
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.Tag
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
-
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明protected void
addPlaceValue
(String val) 子タグ(andタグ)でプレースホルダーを設定した時に利用するメソッドです。int
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。int
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。int
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。protected void
Query を実行します。protected String[]
getRequest
(String... nameArray) 名称配列を元に、リクエスト情報のデータを取得します。protected void
release2()
タグリブオブジェクトをリリースします。void
setCheckNames
(String nm) 【TAG】リクエスト変数の正規化を行うカラムをCSV形式で複数指定します。void
setCommand
(String cmd) 【TAG】コマンド (NEW,RENEW)をセットします(PlsqlUpdateTag,UpdateTag の場合は、ENTRY)。void
【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します。void
setDispError
(String flag) 【TAG】PLSQL/SQL処理エラーの時にエラーを画面表示するか[true/false]を設定します(初期値:true)。void
setDisplayMsg
(String id) 【TAG】検索結果を画面上に表示するメッセージリソースIDを指定します (初期値:VIEW_DISPLAY_MSG[=])。void
setMainTrans
(String flag) 【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:true)。void
setMaxRowCount
(String count) 【TAG】(通常は使いません)データの最大読み込み件数を指定します (初期値:DB_MAX_ROW_COUNT[=])。void
setModifyType
(String type) 【TAG】DB検索時の モディファイタイプを指定します[A:追加/C:更新/D:削除]。void
【TAG】PL/SQLを利用する場合の引数にセットすべき データの名称をCSV形式で複数指定します。void
setNotfoundMsg
(String id) 【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])。void
setOutMessage
(String flag) 【TAG】検索結果のメッセージを表示する/しない[true/false]を指定します(初期値:true)。void
setOverflowMsg
(String id) 【TAG】検索データが最大検索数をオーバーした場合に表示するメッセージリソースIDを指定します (初期値:MSG0007[検索結果が、制限行数を超えましたので、残りはカットされました])。protected void
BODY部の TableUpdateParamTag に書かれたquery文を受け取ります。void
setQueryType
(String id) 【TAG】Query を発行する為のクラスID(JDBC,JDBCCallable,JDBCErrMsg,JDBCUpdate,JDBCPrepared)を指定します()。void
setQuotCheck
(String flag) 【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_SQL_INJECTION_CHECK[=])。void
setSkipRowCount
(String count) 【TAG】(通常は使いません)データの読み始めの初期値を指定します。void
setStopError
(String flag) 【TAG】PLSQL/SQL処理エラーの時に処理を中止するかどうか[true/false]を設定します(初期値:true)。void
setStopZero
(String flag) 【TAG】検索結果が0件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。void
setTableId
(String id) 【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。void
【TAG】引数の SQL 文を EXPLAIN PLAN を[true:行う/それ以外:行わない]を指定します(初期値:false)。void
setUseBeforeHtmlTag
(String useTag) 【TAG】処理時間(queryTime)などの情報出力[true:有効/false:無効]を指定します(初期値:true)。void
setUseSLabel
(String prm) 【TAG】エラーメッセージにSLABELを利用するかどうか[true/false]を指定します(初期値:false)。void
setUseTimeView
(String flag) 【TAG】処理時間を表示する TimeView を表示するかどうか[true:する/false:しない]を指定します (初期値:VIEW_USE_TIMEBAR[=])。void
setXssCheck
(String flag) 【TAG】リクエスト情報の HTMLTag開始/終了文字(><) 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_XSS_CHECK[=])。toString()
このオブジェクトの文字列表現を返します。クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, debugPrint, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsg, getMsglbl, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useStrict, useTag, useXssCheck
クラスから継承されたメソッド jakarta.servlet.jsp.tagext.BodyTagSupport
doInitBody, getBodyContent, getPreviousOut, release, setBodyContent
クラスから継承されたメソッド jakarta.servlet.jsp.tagext.TagSupport
findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue
クラスから継承されたメソッド java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
インタフェースから継承されたメソッド jakarta.servlet.jsp.tagext.Tag
getParent, setPageContext, setParent
-
フィールド詳細
-
CMD_NEW
command 引数に渡す事の出来る コマンド 新規 "NEW"- 関連項目:
-
CMD_RENEW
command 引数に渡す事の出来る コマンド 再検索 "RENEW"- 関連項目:
-
ERR_MSG_ID
エラーメッセージID "h_errMsg"- 関連項目:
-
table
テーブルモデル -
errMessage
エラーメッセージ -
tableId
テーブルID -
command
コマンド -
skipRowCount
スキップ行数 -
maxRowCount
最大行数 -
sql
検索文 -
executeCount
実行件数 -
names
名前列 -
outMessage
アウトメッセージ -
errCode
エラーコード -
displayMsg
ディスプレイメッセージ -
dyStart
3.5.4.7 (2004/02/06) 実行時間測定用のDIV要素を出力します。 -
useTimeView
タイムバーを使用するかどうか -
stopError
4.3.3.0 (2008/09/22) PLSQL/SQL実行エラーの際に、処理を中止するかどうか。 -
dispError
5.9.26.1 (2017/11/10) 実行エラーの際に、エラーを画面に出力するかどうか。 -
quotCheck
クオートチェック -
xssCheck
XSSチェック -
useSLabel
SLABELを利用するかどうか
-
-
コンストラクタの詳細
-
QueryTag
public QueryTag()デフォルトコンストラクター- 変更履歴:
- 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
-
-
メソッドの詳細
-
doStartTag
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。- 定義:
doStartTag
インタフェース内Tag
- オーバーライド:
doStartTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示
- 変更履歴:
- 3.5.4.7 (2004/02/06) 実行時間測定用に、開始時刻を取得します。, 3.5.6.5 (2004/08/09) 暫定的に、DBTableModelを先行削除します。, 3.6.0.0 (2004/09/24) DBTableModel の先行削除は、scope="session" の場合のみ。, 5.1.6.0 (2010/05/01) DBLastSqlの処理は、DBTableModelが新規作成された処理でのみ行う。, 5.2.2.0 (2010/11/01) caseKey、caseVal 属性対応, 6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。, 6.4.8.1 (2016/07/02) xssCheckを、doStartTag に移動, 7.2.5.0 (2020/06/01) NEXT,PREV等でstopZeroが効かない対応
-
doAfterBody
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。- 定義:
doAfterBody
インタフェース内IterationTag
- オーバーライド:
doAfterBody
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示(SKIP_BODY)
- 変更履歴:
- 3.1.1.0 (2003/03/28) ボディの内容を取得する処理を、CommonTagSupport で行う。, 3.6.0.8 (2004/11/19) エラー発生時に確実にリリースされるように try finally 追加, 3.8.5.3 (2006/08/07) USER.LASTSQL へのSQL文の保存は、実行前に行っておきます。, 3.8.6.3 (2006/11/30) SQL 文の前後のスペースを取り除きます。, 3.8.7.0 (2006/12/15) アクセスログ取得の為、ApplicationInfoオブジェクトを設定, 4.0.0.0 (2005/01/31) lang ⇒ ResourceManager へ変更, 4.0.0.0 (2005/08/31) useQuotCheck() によるSQLインジェクション対策, 4.3.4.0 (2008/12/01) GE20(ユーザー定数)へ登録するかのフラグへの対応, 5.0.0.2 (2009/09/15) XSS対応, 5.1.6.0 (2010/05/01) DBLastSqlの処理は、DBTableModelが新規作成された処理でのみ行う。, 5.1.9.0 (2010/08/01) TransactionTag 対応。上位に TransactionTag があれば、そこからConnection をもらう。, 5.3.6.0 (2011/06/01) 集計、合計などのEdit機能に対応します。, 5.3.7.0 (2011/07/01) TransactionReal の引数変更, 5.3.7.0 (2011/07/01) PL/SQLかつscope="request"で正しく出力するためqueryType,namesも保存する。, 5.3.8.0 (2011/08/01) Transaction発生箇所でclose(), 5.5.3.4 (2012/06/19) trace 時は、実際の検索処理を行わない様に変更。, 5.6.5.3 (2013/06/28) LASTQUERYTYPE ⇒ LASTSQLTYPE 変更。, 6.3.1.1 (2015/07/10) BodyString,BodyRawStringは、CommonTagSupport で、trim() します。, 6.3.6.1 (2015/08/28) Transaction でAutoCloseableを使用したtry-with-resources構築に対応。, 6.3.6.1 (2015/08/28) QueryFactory.close( Query ) 廃止。Queryはキャッシュしません。, 6.4.0.2 (2015/12/11) Transaction の commit は、errCode で判定します。, 6.4.8.1 (2016/07/02) xssCheckを、doStartTag に移動, 7.2.9.1 (2020/10/23) TableUpdateParamTag のマージ(UPDATE,INSERT)対応, 7.4.1.0 (2021/04/23) sqlType="MERGE" 時のみ有効で、where 条件で存在すれば何もしない, 8.0.2.0 (2021/11/30) 検索実行前に、SQL文字をdebugPrint出来るように修正
-
doEndTag
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。- 定義:
doEndTag
インタフェース内Tag
- オーバーライド:
doEndTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示
- 変更履歴:
- 2.0.0.8 (2002/10/09) command="NEW" のときのみ、displayMsg を表示させます。, 2.1.1.4 (2002/11/25) デバッグ時に最終SQLをユーザー情報をセットするように変更。, 2.1.2.1 (2002/11/27) ErrorMessage をクリアしないように変更。, 3.1.1.0 (2003/03/28) JspWriter オブジェクトの使用箇所を、jspPrint() を使用するように変更。, 3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。, 3.2.1.0 (2003/05/28) 最終SQL文を、UserInfo に、キャッシュしておく。, 3.3.3.3 (2003/08/06) 検索結果の件数を、"DB.COUNT" キーでリクエストにセットする。, 3.3.3.3 (2003/08/06) 検索結果を、"DB.ERR_CODE" キーでリクエストにセットする。, 3.5.4.7 (2004/02/06) 実行時間測定用のDIV要素を出力しておきます。, 3.5.4.9 (2004/02/25) 警告時に停止していましたが、継続処理させます。, 3.5.5.0 (2004/03/12) ErrorMessage オブジェクトを、query が成功した時にもクリアするように変更, 3.5.5.2 (2004/04/02) TaglibUtil.makeHTMLErrorTable メソッドを利用, 3.5.5.8 (2004/05/20) ErrorMessage オブジェクトを、コマンドが NEW の場合のみ、クリア, 3.5.6.0 (2004/06/18) debugMsg 属性を出力するように修正します。, 3.6.0.8 (2004/11/19) DBTableModel をセーブする時に、トランザクションチェックを行います。, 3.8.5.3 (2006/08/07) USER.LASTSQL へのSQL文の保存は、実行前に行っておきます。, 4.0.0.0 (2006/11/14) notfoundMsg 属性を追加。displayMsg は、VIEW_USE_DISPLAY_MSG で制御, 4.0.0.0 (2007/10/18) メッセージリソース統合( getResource().getMessage ⇒ getResource().getLabel ), 4.3.3.0 (2008/09/22) 属性 stopError の設定により、JSP処理を中止するかどうかを制御します。, 5.2.2.0 (2010/11/01) caseKey、caseVal 属性対応, 5.3.5.0 (2011/05/01) 処理時間(queryTime)などの情報出力の有効/無効を指定します。, 5.5.0.3 (2012/03/13) オーバーフローメッセージが存在しないときは、何もしない。(改行も入れない), 5.5.3.4 (2012/06/19) trace 時は、実際の検索処理を行わない様に変更。, 5.6.3.0 (2013/04/01) エラー時メッセージ変更, 6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。, 5.9.16.1 (2017/11/10) dispErrorの動作追加, 6.9.9.0 (2018/08/20) 「ERR0041:検索処理中に割り込みの検索要求がありました」エラーを、標準のErrorMessageに追加するようにします。, 7.0.7.0 (2019/12/13) useSLabel 属性を追加。
-
release2
タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。- オーバーライド:
release2
クラス内CommonTagSupport
- 変更履歴:
- 2.0.0.4 (2002/09/27) カスタムタグの release() メソッドを、追加, 3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。, 3.5.4.7 (2004/02/06) 実行時間測定用に、dyStart を追加します。, 3.5.6.0 (2004/06/18) debugMsg 属性を追加します。, 3.8.0.5 (2005/08/20) checkNames 属性を追加します。, 3.8.5.1 (2006/05/08) modifyType 属性を追加します。, 3.8.5.1 (2006/05/08) traceMsg 属性(トレース時のメッセージ文字列)を追加します。, 4.0.0.0 (2005/08/31) quotCheck 属性の追加, 4.0.0.0 (2007/10/10) dbid の初期値を、"DEFAULT" から null に変更, 4.3.3.0 (2008/09/22) stopError 属性の追加, 5.0.0.2 (2009/09/15) XSS対応, 5.1.6.0 (2010/05/01) DBLastSqlの処理は、DBTableModelが新規作成された処理でのみ行う。, 5.3.5.0 (2011/05/01) 処理時間(queryTime)などの情報出力の有効/無効を指定します。, 6.3.6.1 (2015/08/28) 検索か更新か判定するフラグ(updateFlag)を用意します。, 5.9.26.1 (2017/11/10) dispError追加, 5.10.2.1 (2018/08/18) プレースホルダ対応, 7.0.7.0 (2019/12/13) useSLabel 属性を追加。, 7.2.9.1 (2020/10/23) TableUpdateParamTag のマージ(UPDATE,INSERT)対応, 7.4.1.0 (2021/04/23) sqlType="MERGE" 時のみ有効で、where 条件で存在すれば何もしない
-
execute
Query を実行します。- パラメータ:
query
- オブジェクト- 変更履歴:
- 2.1.2.3 (2002/12/02) データベース更新時に、更新フラグをセットするように変更, 3.4.0.0 (2003/09/01) 登録エラー時のキーと値を表示するように変更。, 3.5.6.0 (2004/06/18) デバッグ情報出力用に、printDebug メソッドを追加。, 3.6.1.0 (2005/01/05) エラーコードによる commit/rollback の判断追加, 5.3.7.0 (2011/07/01) nameの判定にゼロ文字列を付加, 6.2.1.0 (2015/03/13) エラーメッセージに SQL文を追加します。, 6.3.6.1 (2015/08/28) 検索か更新か判定するフラグ(updateFlag)を用意します。, 6.4.2.0 (2016/01/29) HybsSystemException を catch して、再び、throw する処理を廃止します。, 6.9.9.0 (2018/08/20) プレースホルダ対応( 5.10.2.1 (2018/08/18) )
-
setQuery
BODY部の TableUpdateParamTag に書かれたquery文を受け取ります。 typeには、UPDATEかINSERTが指定され、それに応じたqueryを各変数にセットします。- パラメータ:
type
- Queryタイプ(UPDATE,INSERT,その他)query
- SQL文- 変更履歴:
- 7.2.9.1 (2020/10/23) TableUpdateParamTag のマージ(UPDATE,INSERT)対応, 7.2.9.3 (2020/11/06) QueryTag に移動, 7.4.1.0 (2021/04/23) sqlType="MERGE" 時のみ有効で、where 条件で存在すれば何もしない
-
getRequest
名称配列を元に、リクエスト情報のデータを取得します。 checkNames 属性に設定されているカラムがあれば、値を正規化します。- パラメータ:
nameArray
- キーとなる名称の配列- 戻り値:
- そのリクエスト情報の配列(可変長引数)
- 変更履歴:
- 3.8.0.5 (2005/08/20) リクエスト変数の正規化(checkNames)対応
- このメソッドは、nullを返しません
-
addPlaceValue
子タグ(andタグ)でプレースホルダーを設定した時に利用するメソッドです。 queryタグ内部のプレースホルダリストに追加します。- パラメータ:
val
- 追加分- 変更履歴:
- 6.9.9.0 (2018/08/20) 新規追加( 5.10.2.1 (2018/08/18) )
-
setSkipRowCount
【TAG】(通常は使いません)データの読み始めの初期値を指定します。- パラメータ:
count
- 読み始めの初期値- 説明:
- データベース自体の検索は、指定されたSQLの全件を検索しますが、 DBTableModelのデータとしては、スキップ件数分は登録されません。 サーバーのメモリ資源と応答時間の確保の為です。
-
setMaxRowCount
【TAG】(通常は使いません)データの最大読み込み件数を指定します (初期値:DB_MAX_ROW_COUNT[=])。- パラメータ:
count
- 最大件数- 関連項目:
- 変更履歴:
- 5.5.8.5 (2012/11/27) 0を無制限として処理します。
- 説明:
- データベース自体の検索は、指定されたSQLの全件を検索しますが、 DBTableModelのデータとして登録する最大件数をこの値に設定します。 サーバーのメモリ資源と応答時間の確保の為です。 0 をセットすると、無制限(Integer.MAX_VALUE)になります。 (初期値:ユーザー定数のDB_MAX_ROW_COUNT[=])。
-
setTableId
【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。- パラメータ:
id
- テーブルID (sessionに登録する時のID)- 説明:
- 検索結果より、DBTableModelオブジェクトを作成します。これを、下流のviewタグ等に 渡す場合に、通常は、session を利用します。その場合の登録キーです。 query タグを同時に実行して、結果を求める場合、同一メモリに配置される為、 この tableId 属性を利用して、メモリ空間を分けます。 (初期値:HybsSystem#TBL_MDL_KEY[=])。
-
setQueryType
【TAG】Query を発行する為のクラスID(JDBC,JDBCCallable,JDBCErrMsg,JDBCUpdate,JDBCPrepared)を指定します()。- パラメータ:
id
- Query実クラス- 関連項目:
- 説明:
- 検索を実行する手段は、Query インターフェースの実装クラスになります。
このタグでは、Query.execute( String[] ) メソッドが呼ばれます。
例えば、ストアドプロシージャ等を実行する場合に、queryType="JDBCErrMsg"
を指定することができます。
初期値は、"JDBC" です。
queryType は、システムリソースの Query_**** 宣言の **** を与えます。
これらは、Query インターフェースを継承したサブクラスである必要があります。
標準で、org.opengion.hayabusa.db 以下の Query_**** クラスが、Query_**** 宣言 と
して、定義されています。
属性クラス定義の
Query
を参照願います。
-
setDbid
【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します。- パラメータ:
id
- データベース接続ID- 説明:
- Queryオブジェクトを作成する時のDB接続IDを指定します。 これは、システムリソースで、DEFAULT_DB_URL 等で指定している データベース接続先 情報に、XX_DB_URL を定義することで、 dbid="XX" とすると、この接続先を使用して データベースにアクセスできます。
-
setCommand
【TAG】コマンド (NEW,RENEW)をセットします(PlsqlUpdateTag,UpdateTag の場合は、ENTRY)。- パラメータ:
cmd
- コマンド (public static final 宣言されている文字列)- 関連項目:
- 説明:
- コマンドは、HTMLから(get/post)指定されますので、CMD_xxx で設定される フィールド定数値のいづれかを、指定できます。
-
setStopZero
【TAG】検索結果が0件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。- パラメータ:
flag
- 0件時停止可否 [true:処理を中止する/false:続行する]- 説明:
- 初期値は、false(続行する)です。
-
setDisplayMsg
【TAG】検索結果を画面上に表示するメッセージリソースIDを指定します (初期値:VIEW_DISPLAY_MSG[=])。- パラメータ:
id
- 表示メッセージID- 関連項目:
- 説明:
- ここでは、検索結果の件数や登録された件数をまず出力し、 その次に、ここで指定したメッセージをリソースから取得して表示します。 件数を表示させる場合は、displayMsg = "MSG0033"[ 件検索しました] をセットしてください。 表示させたくない場合は、displayMsg = "" をセットしてください。 (初期値:システム定数のVIEW_DISPLAY_MSG[=])。
-
setOverflowMsg
【TAG】検索データが最大検索数をオーバーした場合に表示するメッセージリソースIDを指定します (初期値:MSG0007[検索結果が、制限行数を超えましたので、残りはカットされました])。- パラメータ:
id
- オーバー時メッセージID- 説明:
- 検索結果が、maxRowCount で設定された値より多い場合、何らかのデータは検索されず 切り捨てられたことになります。 ここでは、displayMsg を表示した後、必要に応じて、このメッセージを表示します。 表示させたくない場合は、overflowMsg = "" をセットしてください。 初期値は、MSG0007[検索結果が、制限行数を超えましたので、残りはカットされました]です。
-
setNotfoundMsg
【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])。- パラメータ:
id
- ゼロ件メッセージID- 説明:
- ここでは、検索結果がゼロ件の場合のみ、特別なメッセージを表示させます。 従来は、displayMsg と兼用で、『0 件検索しました』という表示でしたが、 displayMsg の初期表示は、OFF になりましたので、ゼロ件の場合のみ別に表示させます。 表示させたくない場合は、notfoundMsg = "" をセットしてください。 初期値は、MSG0077[対象データはありませんでした]です。
-
setNames
【TAG】PL/SQLを利用する場合の引数にセットすべき データの名称をCSV形式で複数指定します。- パラメータ:
nm
- 引数の名称 (CSV形式)- 変更履歴:
- 3.0.1.3 (2003/03/11) names 属性に null で渡す場合のバグを修正
- 説明:
- 複数ある場合は、CSV形式で渡します。 names 属性は、queryType に応じて設定可否が異なりますので、ご注意ください。 names なし:JDBC,JDBCUpdate,JDBCPrepared names あり:JDBCCallable,JDBCErrMsg,JDBCUpdate (JDBCUpdateは、names 属性のあり/なし両方に対応しています。)
-
setOutMessage
【TAG】検索結果のメッセージを表示する/しない[true/false]を指定します(初期値:true)。- パラメータ:
flag
- 検索結果メッセージ [true:表示する/それ以外:含めない]- 説明:
- 初期値は、表示する:true です。
-
setTrace
【TAG】引数の SQL 文を EXPLAIN PLAN を[true:行う/それ以外:行わない]を指定します(初期値:false)。- パラメータ:
flag
- トレース [true:行う/それ以外:行わない]- 説明:
- ここでは、以下の処理を行います。 1.引数の SQL 文を画面に表示します。 2.引数の SQL 文を EXPLAIN PLAN した結果を、画面に表示します。 なお、以前は、セッションのトレースを行っていましたが、その機能は、廃止いたします。 初期値は、行わない:false です。
-
setCheckNames
【TAG】リクエスト変数の正規化を行うカラムをCSV形式で複数指定します。- パラメータ:
nm
- 正規化処理カラム (CSV形式)- 変更履歴:
- 3.8.0.5 (2005/08/20) 新規追加
- 説明:
- PL/SQLを利用する場合の引数にセットすべき データを、リクエスト変数の 値そのままではなく、カラムオブジェクトの valueSet メソッド経由で正規化 した値を使用するようにします。 これは、カラムリソース定義の文字種別で定義された変換ルールを適用します。 DBTableModel を使っていないため、カラム定義は、columnEditor等で変更できません。
-
setModifyType
【TAG】DB検索時の モディファイタイプを指定します[A:追加/C:更新/D:削除]。- パラメータ:
type
- Dモディファイタイプ [A:追加/C:更新/D:削除]- 変更履歴:
- 3.8.5.1 (2006/05/08) 新規追加
- 説明:
- DB検索時に、そのデータをA(追加)、C(更新)、D(削除)のモディファイタイプを つけた状態にします。 その状態で、そのまま、update する事が可能になります。
-
setQuotCheck
【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_SQL_INJECTION_CHECK[=])。- パラメータ:
flag
- クォートチェック [true:する/それ以外:しない]- 変更履歴:
- 4.0.0.0 (2005/08/31) 新規追加
- 説明:
- SQLインジェクション対策の一つとして、暫定的ではありますが、SQLのパラメータに 渡す文字列にシングルクォート(') を許さない設定にすれば、ある程度は防止できます。 数字タイプの引数には、 or 5=5 などのシングルクォートを使用しないコードを埋めても、 数字チェックで検出可能です。文字タイプの場合は、必ず (')をはずして、 ' or 'A' like 'A のような形式になる為、(')チェックだけでも有効です。 (') が含まれていたエラーにする(true)/かノーチェックか(false)を指定します。 初期値は、SystemData#USE_SQL_INJECTION_CHECK です。
-
setXssCheck
【TAG】リクエスト情報の HTMLTag開始/終了文字(><) 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_XSS_CHECK[=])。- パラメータ:
flag
- XSSチェック [true:する/false:しない]- 関連項目:
- 変更履歴:
- 5.0.0.2 (2009/09/15) 新規追加
- 説明:
- クロスサイトスクリプティング(XSS)対策の一環としてless/greater than signについてのチェックを行います。 (><) が含まれていたエラーにする(true)/かノーチェックか(false)を指定します。 (初期値:システム定数のUSE_XSS_CHECK[=])
-
setStopError
【TAG】PLSQL/SQL処理エラーの時に処理を中止するかどうか[true/false]を設定します(初期値:true)。- パラメータ:
flag
- エラー時処理中止 [true:中止する/false:中止しない]- 変更履歴:
- 4.3.3.0 (2008/09/22) 新規追加
- 説明:
- false(中止しない)に設定する場合、後続処理では、{@DB.ERR_CODE}の値により、 PLSQL/SQLの異常/正常終了によって分岐処理は可能となります。 初期値は、true(中止する)です。
-
setDispError
【TAG】PLSQL/SQL処理エラーの時にエラーを画面表示するか[true/false]を設定します(初期値:true)。- パラメータ:
flag
- [true:表示する/false:表示しない]- 変更履歴:
- 5.9.26.1 (2017/11/10) 新規追加
- 説明:
- false(表示しない)に設定する場合、後続処理では、{@DB.ERR_MSG}の値により、 本来表示されるはずだったメッセージを取得可能です。 stopErrorと併用して、JSON形式でエラーを返す場合等に利用します。 初期値は、true(表示する)です。 ※false指定の場合は件数や、overFlowメッセージ等も表示されなくなります。
-
setMainTrans
【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:true)。- パラメータ:
flag
- メイントランザクションかどうか [true:メイン/false:その他]- 変更履歴:
- 5.1.6.0 (2010/05/01) 新規作成
- 説明:
- この値は、ファイルダウンロード処理に影響します。この値がtrueに指定された時にcommitされたDBTableModelが ファイルダウンロードの対象の表になります。 このパラメーターは、通常、各タグにより実装され、ユーザーが指定する必要はありません。 但し、1つのJSP内でDBTableModelが複数生成される場合に、前に処理したDBTableModelについてファイルダウンロードをさせたい 場合は、後ろでDBTableModelを生成するタグで、明示的にこの値をfalseに指定することで、ファイルダウンロード処理の対象から 除外することができます。
-
setUseBeforeHtmlTag
【TAG】処理時間(queryTime)などの情報出力[true:有効/false:無効]を指定します(初期値:true)。- パラメータ:
useTag
- 情報出力の有効/無効 [true:有効/false:無効]- 変更履歴:
- 5.3.5.0 (2011/05/01) 新規追加
- 説明:
- Query で、検索する場合に、処理時間(queryTime)などの情報を出力していますが、 ViewForm で、CustomData などの 非HTML表示ビューを使用する場合、データとして、 紛れ込んでしまうため、出力を抑制する必要があります。 true(有効)にすると、これらのHTMLが出力されます。false にすると、出力されません。 初期値は、true(有効) です。
-
setUseTimeView
【TAG】処理時間を表示する TimeView を表示するかどうか[true:する/false:しない]を指定します (初期値:VIEW_USE_TIMEBAR[=])。- パラメータ:
flag
- 処理時間を表示 [true:する/false:しない]- 変更履歴:
- 6.3.6.0 (2015/08/16) useTimeView の初期値を、VIEW_USE_TIMEBAR にする。
- 説明:
- true に設定すると、処理時間を表示するバーイメージが表示されます。 これは、DB検索、APサーバー処理、画面表示の各処理時間をバーイメージで 表示させる機能です。処理時間の目安になります。 (初期値:VIEW_USE_TIMEBAR[=])。
-
setUseSLabel
【TAG】エラーメッセージにSLABELを利用するかどうか[true/false]を指定します(初期値:false)。- パラメータ:
prm
- SLABEL利用 [true:利用する/false:利用しない]- 変更履歴:
- 7.0.7.0 (2019/12/13) 新規追加
- 説明:
- 通常のエラーメッセージは、ラベル(長)が使われますが、これをラベル(短)を使いたい場合に、true にセットします。 ここでのラベル(短)は、タグ修飾なしの、ラベル(短)です。 標準はfalse:利用しない=ラベル(長)です。 true/false以外を指定した場合はfalse扱いとします。 ラベルリソースの概要説明があれば表示しますが、useSLabel="true" 時は、概要説明を表示しません。
-
toString
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。- オーバーライド:
toString
クラス内CommonTagSupport
- 戻り値:
- このクラスの文字列表現
- 変更履歴:
- 6.3.1.1 (2015/07/10) SQL文から、TAB→スペース変換と、余計な改行を削除します。
-