パッケージ org.opengion.hayabusa.taglib

# クラス 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`

public class QueryTag extends CommonTagSupport
データベースの検索を行うタグです。 このタグの内容に、SQL文を記述します。 whereタグ、 andタグ を使うと引数に応じて 実行されるSQL文が異なります(使用例参照)。 また、PL/SQLのSPで検索を行うときもこのタグを使います。 SystemData の USE_SQL_INJECTION_CHECK が true か、quotCheck 属性が true の場合は、 ＳＱＬインジェクション対策用のシングルクォートチェックを行います。リクエスト引数に シングルクォート(')が含まれると、エラーになります。 同様にUSE_XSS_CHECKがtrueか、xssCheck属性がtrueの場合は、 クロスサイトススクリプティング(XSS)対策のためless/greater than signのチェックを行います。 実行後にリクエストパラメータに以下の値がセットされます。 DB.COUNT : 検索結果の件数 DB.ERR_CODE : 検索結果のｴﾗｰｺｰﾄﾞ DB.IS_UPDATE : 更新(=true)/検索(false) ※ このタグは、Transaction タグの対象です。

関連項目:
  - 直列化された形式
機能分類
  ＤＢ検索, ＤＢ登録
形式ｻﾝﾌﾟﾙ:
  ●形式： ・<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/page/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】検索結果が０件のとき処理を続行するかどうか[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`
  `CMD_NEW`
  command 引数に渡す事の出来る コマンド 新規 "NEW"
  `static final String`
  `CMD_RENEW`
  command 引数に渡す事の出来る コマンド 再検索 "RENEW"
  `protected String`
  `command`
  ｺﾏﾝﾄﾞ
  `protected boolean`
  `dispError`
  5.9.26.1 (2017/11/10) 実行エラーの際に、エラーを画面に出力するかどうか。
  `protected String`
  `displayMsg`
  ﾃﾞｨｽﾌﾟﾚｲﾒｯｾｰｼﾞ
  `protected long`
  `dyStart`
  3.5.4.7 (2004/02/06) 実行時間測定用のDIV要素を出力します。
  `protected static final String`
  `ERR_MSG_ID`
  エラーメッセージID "h_errMsg"
  `protected int`
  `errCode`
  ｴﾗｰｺｰﾄﾞ
  `protected ErrorMessage`
  `errMessage`
  ｴﾗｰﾒｯｾｰｼﾞ
  `protected int`
  `executeCount`
  実行件数
  `protected int`
  `maxRowCount`
  最大行数
  `protected String`
  `names`
  名前列
  `protected boolean`
  `outMessage`
  ｱｳﾄﾒｯｾｰｼﾞ
  `protected boolean`
  `quotCheck`
  ｸｵｰﾄﾁｪｯｸ
  `protected int`
  `skipRowCount`
  ｽｷｯﾌﾟ行数
  `protected String`
  `sql`
  検索文
  `protected boolean`
  `stopError`
  4.3.3.0 (2008/09/22) PLSQL/SQL実行エラーの際に、処理を中止するかどうか。
  `protected DBTableModel`
  `table`
  ﾃｰﾌﾞﾙﾓﾃﾞﾙ
  `protected String`
  `tableId`
  ﾃｰﾌﾞﾙID
  `protected boolean`
  `useSLabel`
  SLABELを利用するかどうか
  `protected boolean`
  `useTimeView`
  ﾀｲﾑﾊﾞｰを使用するかどうか
  `protected boolean`
  `xssCheck`
  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`

- ## コンストラクタの概要

  コンストラクタ
  コンストラクタ
  説明
  `QueryTag()`
  デフォルトコンストラクター

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `protected void`
  `addPlaceValue(String val)`
  子タグ(andタグ)でプレースホルダーを設定した時に利用するメソッドです。
  `int`
  `doAfterBody()`
  Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
  `int`
  `doEndTag()`
  Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
  `int`
  `doStartTag()`
  Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
  `protected void`
  `execute(Query query)`
  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`
  `setDbid(String id)`
  【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`
  `setNames(String nm)`
  【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`
  `setQuery(String type, String query)`
  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】検索結果が０件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。
  `void`
  `setTableId(String id)`
  【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。
  `void`
  `setTrace(String flag)`
  【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[=])。
  `String`
  `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, 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

    public static final String CMD_NEW
    command 引数に渡す事の出来る コマンド 新規 "NEW"
    関連項目:
      - 定数フィールド値

  - ### CMD_RENEW

    public static final String CMD_RENEW
    command 引数に渡す事の出来る コマンド 再検索 "RENEW"
    関連項目:
      - 定数フィールド値

  - ### ERR_MSG_ID

    protected static final String ERR_MSG_ID
    エラーメッセージID "h_errMsg"
    関連項目:
      - 定数フィールド値

  - ### table

    protected transient DBTableModel table
    ﾃｰﾌﾞﾙﾓﾃﾞﾙ

  - ### errMessage

    protected transient ErrorMessage errMessage
    ｴﾗｰﾒｯｾｰｼﾞ

  - ### tableId

    protected String tableId
    ﾃｰﾌﾞﾙID

  - ### command

    protected String command
    ｺﾏﾝﾄﾞ

  - ### skipRowCount

    protected int skipRowCount
    ｽｷｯﾌﾟ行数

  - ### maxRowCount

    protected int maxRowCount
    最大行数

  - ### sql

    protected String sql
    検索文

  - ### executeCount

    protected int executeCount
    実行件数

  - ### names

    protected String names
    名前列

  - ### outMessage

    protected boolean outMessage
    ｱｳﾄﾒｯｾｰｼﾞ

  - ### errCode

    protected int errCode
    ｴﾗｰｺｰﾄﾞ

  - ### displayMsg

    protected String displayMsg
    ﾃﾞｨｽﾌﾟﾚｲﾒｯｾｰｼﾞ

  - ### dyStart

    protected long dyStart
    3.5.4.7 (2004/02/06) 実行時間測定用のDIV要素を出力します。

  - ### useTimeView

    protected boolean useTimeView
    ﾀｲﾑﾊﾞｰを使用するかどうか

  - ### stopError

    protected boolean stopError
    4.3.3.0 (2008/09/22) PLSQL/SQL実行エラーの際に、処理を中止するかどうか。

  - ### dispError

    protected boolean dispError
    5.9.26.1 (2017/11/10) 実行エラーの際に、エラーを画面に出力するかどうか。

  - ### quotCheck

    protected boolean quotCheck
    ｸｵｰﾄﾁｪｯｸ

  - ### xssCheck

    protected boolean xssCheck
    XSSﾁｪｯｸ

  - ### useSLabel

    protected boolean useSLabel
    SLABELを利用するかどうか

- ## コンストラクタの詳細

  - ### QueryTag

    public QueryTag()
    デフォルトコンストラクター
    変更履歴:
      6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

- ## メソッドの詳細

  - ### doStartTag

    public int 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

    public int 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() によるＳＱＬインジェクション対策, 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

    public int 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) 最終ＳＱＬ文を、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

    protected void 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

    protected void execute(Query query)
    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

    protected void setQuery(String type, String query)
    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

    protected String[] getRequest(String... nameArray)
    名称配列を元に、リクエスト情報のデータを取得します。 checkNames 属性に設定されているカラムがあれば、値を正規化します。
    パラメータ:
      `nameArray` - キーとなる名称の配列
    戻り値:
      そのリクエスト情報の配列(可変長引数)
    変更履歴:
      3.8.0.5 (2005/08/20) リクエスト変数の正規化(checkNames)対応
    このﾒｿｯﾄﾞは、nullを返しません

  - ### addPlaceValue

    protected void addPlaceValue(String val)
    子タグ(andタグ)でプレースホルダーを設定した時に利用するメソッドです。 queryタグ内部のプレースホルダリストに追加します。
    パラメータ:
      `val` - 追加分
    変更履歴:
      6.9.9.0 (2018/08/20) 新規追加( 5.10.2.1 (2018/08/18) )

  - ### setSkipRowCount

    public void setSkipRowCount(String count)
    【TAG】(通常は使いません)データの読み始めの初期値を指定します。
    パラメータ:
      `count` - 読み始めの初期値
    説明:
      データベース自体の検索は,指定されたSQLの全件を検索しますが, DBTableModelのデータとしては、スキップ件数分は登録されません。 サーバーのメモリ資源と応答時間の確保の為です。

  - ### setMaxRowCount

    public void setMaxRowCount(String count)
    【TAG】(通常は使いません)データの最大読み込み件数を指定します (初期値:DB_MAX_ROW_COUNT[=])。
    パラメータ:
      `count` - 最大件数
    関連項目:
      - `SystemData.DB_MAX_ROW_COUNT`
    変更履歴:
      5.5.8.5 (2012/11/27) 0を無制限として処理します。
    説明:
      データベース自体の検索は,指定されたSQLの全件を検索しますが, DBTableModelのデータとして登録する最大件数をこの値に設定します。 サーバーのメモリ資源と応答時間の確保の為です。 0 をセットすると、無制限(Integer.MAX_VALUE)になります。 (初期値:ユーザー定数のDB_MAX_ROW_COUNT[=])。

  - ### setTableId

    public void setTableId(String id)
    【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。
    パラメータ:
      `id` - テーブルID (sessionに登録する時のID)
    説明:
      検索結果より、DBTableModelオブジェクトを作成します。これを、下流のviewタグ等に 渡す場合に、通常は、session を利用します。その場合の登録キーです。 query タグを同時に実行して、結果を求める場合、同一メモリに配置される為、 この tableId 属性を利用して、メモリ空間を分けます。 (初期値:HybsSystem#TBL_MDL_KEY[=])。

  - ### setQueryType

    public void setQueryType(String id)
    【TAG】Query を発行する為のクラスID(JDBC,JDBCCallable,JDBCErrMsg,JDBCUpdate,JDBCPrepared)を指定します()。
    パラメータ:
      `id` - Query実クラス
    関連項目:
      - `Queryのサブクラス`
      - `Query.execute(String[])`
    説明:
      検索を実行する手段は、Query インターフェースの実装クラスになります。 このタグでは、Query.execute( String[] ) メソッドが呼ばれます。 例えば、ストアドプロシージャ等を実行する場合に、queryType="JDBCErrMsg" を指定することができます。 初期値は、"JDBC" です。 queryType は、システムリソースの Query_**** 宣言の **** を与えます。 これらは、Query インターフェースを継承したサブクラスである必要があります。 標準で、org.opengion.hayabusa.db 以下の Query_**** クラスが、Query_**** 宣言 と して、定義されています。 属性クラス定義の `Query` を参照願います。

  - ### setDbid

    public void setDbid(String id)
    【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します。
    パラメータ:
      `id` - データベース接続ID
    説明:
      Queryオブジェクトを作成する時のDB接続IDを指定します。 これは、システムリソースで、DEFAULT_DB_URL 等で指定している データベース接続先 情報に、XX_DB_URL を定義することで、 dbid="XX" とすると、この 接続先を使用して データベースにアクセスできます。

  - ### setCommand

    public void setCommand(String cmd)
    【TAG】コマンド (NEW,RENEW)をセットします(PlsqlUpdateTag,UpdateTag の場合は、ENTRY)。
    パラメータ:
      `cmd` - コマンド (public static final 宣言されている文字列)
    関連項目:
      - コマンド定数
    説明:
      コマンドは,HTMLから(get/post)指定されますので,CMD_xxx で設定される フィールド定数値のいづれかを、指定できます。

  - ### setStopZero

    public void setStopZero(String flag)
    【TAG】検索結果が０件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。
    パラメータ:
      `flag` - ０件時停止可否 [true:処理を中止する/false:続行する]
    説明:
      初期値は、false(続行する)です。

  - ### setDisplayMsg

    public void setDisplayMsg(String id)
    【TAG】検索結果を画面上に表示するメッセージリソースIDを指定します (初期値:VIEW_DISPLAY_MSG[=])。
    パラメータ:
      `id` - 表示メッセージID
    関連項目:
      - `SystemData.VIEW_DISPLAY_MSG`
    説明:
      ここでは、検索結果の件数や登録された件数をまず出力し、 その次に、ここで指定したメッセージをリソースから取得して表示します。 件数を表示させる場合は、displayMsg = "MSG0033"[　件検索しました] をセットしてください。 表示させたくない場合は, displayMsg = "" をセットしてください。 (初期値:システム定数のVIEW_DISPLAY_MSG[=])。

  - ### setOverflowMsg

    public void setOverflowMsg(String id)
    【TAG】検索データが最大検索数をオーバーした場合に表示するメッセージリソースIDを指定します (初期値:MSG0007[検索結果が、制限行数を超えましたので、残りはカットされました])。
    パラメータ:
      `id` - オーバー時メッセージID
    説明:
      検索結果が、maxRowCount で設定された値より多い場合、何らかのデータは検索されず 切り捨てられたことになります。 ここでは、displayMsg を表示した後、必要に応じて、このメッセージを表示します。 表示させたくない場合は, overflowMsg = "" をセットしてください。 初期値は、MSG0007[検索結果が、制限行数を超えましたので、残りはカットされました]です。

  - ### setNotfoundMsg

    public void setNotfoundMsg(String id)
    【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])。
    パラメータ:
      `id` - ゼロ件メッセージID
    説明:
      ここでは、検索結果がゼロ件の場合のみ、特別なメッセージを表示させます。 従来は、displayMsg と兼用で、『0　件検索しました』という表示でしたが、 displayMsg の初期表示は、OFF になりましたので、ゼロ件の場合のみ別に表示させます。 表示させたくない場合は, notfoundMsg = "" をセットしてください。 初期値は、MSG0077[対象データはありませんでした]です。

  - ### setNames

    public void setNames(String nm)
    【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

    public void setOutMessage(String flag)
    【TAG】検索結果のメッセージを表示する/しない[true/false]を指定します(初期値:true)。
    パラメータ:
      `flag` - 検索結果メッセージ [true:表示する/それ以外:含めない]
    説明:
      初期値は、表示する：true です。

  - ### setTrace

    public void setTrace(String flag)
    【TAG】引数の SQL 文を EXPLAIN PLAN を[true:行う/それ以外:行わない]を指定します(初期値:false)。
    パラメータ:
      `flag` - トレース [true:行う/それ以外:行わない]
    説明:
      ここでは、以下の処理を行います。 １．引数の SQL 文を画面に表示します。 ２．引数の SQL 文を EXPLAIN PLAN した結果を、画面に表示します。 なお、以前は、セッションのトレースを行っていましたが、その機能は、廃止いたします。 初期値は、行わない：false です。

  - ### setCheckNames

    public void setCheckNames(String nm)
    【TAG】リクエスト変数の正規化を行うカラムをCSV形式で複数指定します。
    パラメータ:
      `nm` - 正規化処理カラム (CSV形式)
    変更履歴:
      3.8.0.5 (2005/08/20) 新規追加
    説明:
      PL/SQLを利用する場合の引数にセットすべき データを、リクエスト変数の 値そのままではなく、カラムオブジェクトの valueSet メソッド経由で正規化 した値を使用するようにします。 これは、ｶﾗﾑﾘｿｰｽ定義の文字種別で定義された変換ﾙｰﾙを適用します。 DBTableModel を使っていないため、ｶﾗﾑ定義は、columnEditor等で変更できません。

  - ### setModifyType

    public void setModifyType(String type)
    【TAG】DB検索時の モディファイタイプを指定します[A:追加/C:更新/D:削除]。
    パラメータ:
      `type` - Dモディファイタイプ [A:追加/C:更新/D:削除]
    変更履歴:
      3.8.5.1 (2006/05/08) 新規追加
    説明:
      DB検索時に、そのデータをA(追加)、C(更新)、D(削除)のモディファイタイプを つけた状態にします。 その状態で、そのまま、update する事が可能になります。

  - ### setQuotCheck

    public void setQuotCheck(String flag)
    【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_SQL_INJECTION_CHECK[=])。
    パラメータ:
      `flag` - クォートチェック [true:する/それ以外:しない]
    変更履歴:
      4.0.0.0 (2005/08/31) 新規追加
    説明:
      ＳＱＬインジェクション対策の一つとして、暫定的ではありますが、SQLのパラメータに 渡す文字列にシングルクォート(') を許さない設定にすれば、ある程度は防止できます。 数字タイプの引数には、 or 5=5 などのシングルクォートを使用しないコードを埋めても、 数字チェックで検出可能です。文字タイプの場合は、必ず (')をはずして、 ' or 'A' like 'A のような形式になる為、(')チェックだけでも有効です。 (') が含まれていたエラーにする(true)／かノーチェックか(false)を指定します。 初期値は、SystemData#USE_SQL_INJECTION_CHECK です。

  - ### setXssCheck

    public void setXssCheck(String flag)
    【TAG】リクエスト情報の HTMLTag開始/終了文字(><) 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_XSS_CHECK[=])。
    パラメータ:
      `flag` - XSSチェック [true:する/false:しない]
    関連項目:
      - `SystemData.USE_XSS_CHECK`
    変更履歴:
      5.0.0.2 (2009/09/15) 新規追加
    説明:
      クロスサイトスクリプティング(XSS)対策の一環としてless/greater than signについてのチェックを行います。 (><) が含まれていたエラーにする(true)／かノーチェックか(false)を指定します。 (初期値:システム定数のUSE_XSS_CHECK[=])

  - ### setStopError

    public void setStopError(String flag)
    【TAG】PLSQL/SQL処理エラーの時に処理を中止するかどうか[true/false]を設定します(初期値:true)。
    パラメータ:
      `flag` - エラー時処理中止 [true:中止する/false:中止しない]
    変更履歴:
      4.3.3.0 (2008/09/22) 新規追加
    説明:
      false(中止しない)に設定する場合、後続処理では、{@DB.ERR_CODE}の値により、 PLSQL/SQLの異常/正常終了によって分岐処理は可能となります。 初期値は、true(中止する)です。

  - ### setDispError

    public void setDispError(String flag)
    【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

    public void setMainTrans(String flag)
    【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:true)。
    パラメータ:
      `flag` - メイントランザクションかどうか [true:メイン/false:その他]
    変更履歴:
      5.1.6.0 (2010/05/01) 新規作成
    説明:
      この値は、ファイルダウンロード処理に影響します。この値がtrueに指定された時にcommitされたDBTableModelが ファイルダウンロードの対象の表になります。 このパラメーターは、通常、各タグにより実装され、ユーザーが指定する必要はありません。 但し、1つのJSP内でDBTableModelが複数生成される場合に、前に処理したDBTableModelについてファイルダウンロードをさせたい 場合は、後ろでDBTableModelを生成するタグで、明示的にこの値をfalseに指定することで、ファイルダウンロード処理の対象から 除外することができます。

  - ### setUseBeforeHtmlTag

    public void setUseBeforeHtmlTag(String useTag)
    【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

    public void setUseTimeView(String flag)
    【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

    public void setUseSLabel(String prm)
    【TAG】ｴﾗｰﾒｯｾｰｼﾞにSLABELを利用するかどうか[true/false]を指定します(初期値:false)。
    パラメータ:
      `prm` - SLABEL利用 [true:利用する/false:利用しない]
    変更履歴:
      7.0.7.0 (2019/12/13) 新規追加
    説明:
      通常のｴﾗｰﾒｯｾｰｼﾞは、ﾗﾍﾞﾙ（長）が使われますが、これをﾗﾍﾞﾙ（短）を使いたい場合に、true にセットします。 ここでのラベル（短）は、ﾀｸﾞ修飾なしの、ﾗﾍﾞﾙ（短）です。 標準はfalse:利用しない=ﾗﾍﾞﾙ（長）です。 true/false以外を指定した場合はfalse扱いとします。 ﾗﾍﾞﾙﾘｿｰｽの概要説明があれば表示しますが、useSLabel="true" 時は、概要説明を表示しません。

  - ### toString

    public String toString()
    このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
    オーバーライド:
      `toString` クラス内 `CommonTagSupport`
    戻り値:
      このクラスの文字列表現
    変更履歴:
      6.3.1.1 (2015/07/10) SQL文から、TAB→スペース変換と、余計な改行を削除します。