org.opengion.hayabusa.taglib

## クラス DBMetaDataQueryTag

- java.lang.Object
- - javax.servlet.jsp.tagext.TagSupport
  - - javax.servlet.jsp.tagext.BodyTagSupport
    - - org.opengion.hayabusa.taglib.CommonTagSupport
      - - org.opengion.hayabusa.taglib.DBMetaDataQueryTag

- すべての実装されたインタフェース:
    Serializable, BodyTag, IterationTag, JspTag, Tag, TryCatchFinally

      public class DBMetaDataQueryTag
      extends CommonTagSupport

       データベース情報(DBMetaData)より、テーブル、カラム等の情報を取得するタグです。

       データベースに関する包括的な情報を提供する、DatabaseMetaData の内容を
       取得して、DBTableModel にセットするタグです。

  関連項目:
    直列化された形式
  形式サンプル:

         ●形式：<og:dbMetaDataQuery action="･･･" ･･･ />
         ●body：なし

         ●Tag定義：
           <og:dbMetaDataQuery
               command            【TAG】コマンド[NEW/RENEW]をセットします(初期値:NEW)
               action           ○【TAG】アクション(SCHEMAS,TABLES,COLUMNS,INDEXINFO,PROCEDURES)を指定します(必須)。
               catalog            【TAG】カタログ名をセットします(初期値:null)
               schema             【TAG】スキーマ名パターンをセットします(初期値:null)
               tableName          【TAG】テーブル名パターンをセットします(初期値:null)
               columnName         【TAG】列名パターンをセットします(初期値:null)
               procName           【TAG】プロシージャ名パターンをセットします(初期値:null)
               unique             【TAG】返すインデックスの種類[true:ユニークのみ/false:非ユニーク含む]を指定します(初期値:false)
               approximate        【TAG】統計情報の精度[true:概数/false:正確]を指定します(初期値:true)
               scope              【TAG】キャッシュする場合のスコープ[request/page/session/application]を指定します(初期値:session)
               displayMsg         【TAG】検索結果を画面上に表示するメッセージリソースIDを指定します(初期値:MSG0033[　件検索しました])
               notfoundMsg        【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])
               tableId            【TAG】(通常は使いません)結果をDBTableModelに書き込んで、sessionに登録するときのキーを指定します
               dbid               【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します
               mainTrans          【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:false)
               useTimeView        【TAG】処理時間を表示する TimeView を表示するかどうかを指定します
        										(初期値:VIEW_USE_TIMEBAR[=true])。
               debug              【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
           />

         ●使用例
            command属性 は、columnSetタグのcommand属性と同一の場合のみ、処理します。
            [command属性]
              NEW       新規
              RENEW     再検索

            [action属性]
              SCHEMAS    このデータベースで使用可能なスキーマ名を取得します。
              TABLES     指定されたカタログで使用可能なテーブルに関する記述を取得します。
              COLUMNS    指定されたカタログで使用可能なテーブル列の記述を取得します。
              INDEXINFO  指定されたテーブルのインデックスと統計情報に関する記述を取得します。
              PROCEDURES 指定されたカタログで使用可能なストアドプロシージャに関する記述を取得します。

  機能分類
    ＤＢ検索
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### フィールドのサマリー

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `static String` | `ACT_COLUMNS` action 引数に渡す事の出来る アクションコマンド テーブル列 "COLUMNS"
    `static String` | `ACT_INDEXINFO` action 引数に渡す事の出来る アクションコマンド インデックスと統計情報"INDEXINFO"
    `static String` | `ACT_PROCEDURES` action 引数に渡す事の出来る アクションコマンド ストアドプロシージャ"PROCEDURES"
    `static String` | `ACT_SCHEMAS` action 引数に渡す事の出来る アクションコマンド スキーマ名 "SCHEMAS"
    `static String` | `ACT_TABLES` action 引数に渡す事の出来る アクションコマンド テーブル "TABLES"
    `static String` | `CMD_NEW` command 引数に渡す事の出来る コマンド 新規 "NEW"
    `static String` | `CMD_RENEW` command 引数に渡す事の出来る コマンド 再検索 "RENEW"

    - ### クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport

      `BR, BUFFER_MIDDLE, CR`

    - ### クラスから継承されたフィールド javax.servlet.jsp.tagext.BodyTagSupport

      `bodyContent`

    - ### クラスから継承されたフィールド javax.servlet.jsp.tagext.TagSupport

      `id, pageContext`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.BodyTag

      `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.IterationTag

      `EVAL_BODY_AGAIN`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.Tag

      `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

  - ### コンストラクタのサマリー

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

  - ### メソッドのサマリー

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `int` | `doEndTag()` Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    `int` | `doStartTag()` Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
    `protected String` | `getTagName()` タグの名称を、返します。
    `protected void` | `release2()` タグリブオブジェクトをリリースします。
    `void` | `setAction(String cmd)` 【TAG】アクション(SCHEMAS,TABLES,COLUMNS,INDEXINFO,PROCEDURES)を指定します。
    `void` | `setApproximate(String appFlag)` 【TAG】統計情報の精度[true:概数/false:正確]を指定します(初期値:true)。
    `void` | `setCatalog(String catalog)` 【TAG】(通常は使いません)Queryオブジェクトを作成する時のカタログを指定します(初期値:null)。
    `void` | `setColumnName(String columnName)` 【TAG】列名パターンをセットします(初期値:null)。
    `void` | `setCommand(String cmd)` 【TAG】コマンド[NEW/RENEW]をセットします(初期値:NEW)。
    `void` | `setDbid(String id)` 【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します(初期値:null)。
    `void` | `setDisplayMsg(String id)` 【TAG】検索結果を画面上に表示するメッセージリソースIDを指定します (初期値:VIEW_DISPLAY_MSG[=])。
    `void` | `setMainTrans(String flag)` 【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:true)。
    `void` | `setNotfoundMsg(String id)` 【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])。
    `void` | `setProcName(String procName)` 【TAG】プロシージャ名パターンをセットします(初期値:null)。
    `void` | `setSchema(String schema)` 【TAG】スキーマ名パターンをセットします(初期値:null)。
    `void` | `setTableId(String id)` 【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
    `void` | `setTableName(String tableName)` 【TAG】テーブル名パターンをセットします(初期値:null)。
    `void` | `setUnique(String uniqFlag)` 【TAG】返すインデックスの種類[true:ユニークのみ/false:非ユニーク含む]を指定します(初期値:false)。
    `void` | `setUseTimeView(String flag)` 【TAG】処理時間を表示する TimeView を表示するかどうか[true:する/false:しない]を指定します (初期値:VIEW_USE_TIMEBAR[=true])。
    `String` | `toString()` このオブジェクトの文字列表現を返します。

    - ### クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport

      `add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsg, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getSumRequestValue, 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`

    - ### クラスから継承されたメソッド javax.servlet.jsp.tagext.BodyTagSupport

      `doInitBody, getBodyContent, getPreviousOut, release, setBodyContent`

    - ### クラスから継承されたメソッド javax.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`

    - ### インタフェースから継承されたメソッド javax.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"
      関連項目:
        定数フィールド値

    - #### ACT_SCHEMAS

          public static final String ACT_SCHEMAS

      action 引数に渡す事の出来る アクションコマンド スキーマ名 "SCHEMAS"
      関連項目:
        定数フィールド値

    - #### ACT_TABLES

          public static final String ACT_TABLES

      action 引数に渡す事の出来る アクションコマンド テーブル "TABLES"
      関連項目:
        定数フィールド値

    - #### ACT_COLUMNS

          public static final String ACT_COLUMNS

      action 引数に渡す事の出来る アクションコマンド テーブル列 "COLUMNS"
      関連項目:
        定数フィールド値

    - #### ACT_INDEXINFO

          public static final String ACT_INDEXINFO

      action 引数に渡す事の出来る アクションコマンド インデックスと統計情報"INDEXINFO"
      関連項目:
        定数フィールド値

    - #### ACT_PROCEDURES

          public static final String ACT_PROCEDURES

      action 引数に渡す事の出来る アクションコマンド ストアドプロシージャ"PROCEDURES"
      関連項目:
        定数フィールド値

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

    - #### DBMetaDataQueryTag

          public DBMetaDataQueryTag()

      デフォルトコンストラクター
      変更履歴:

        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`
      戻り値:
        後続処理の指示(SKIP_BODY)
      変更履歴:

        5.1.6.0 (2010/05/01) DBLastSqlの処理は、DBTableModelが新規作成された処理でのみ行う。
        6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。

    - #### doEndTag

          public int doEndTag()

      Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
      定義:
        `doEndTag` インタフェース内 `Tag`
      オーバーライド:
        `doEndTag` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示
      変更履歴:

        4.0.0.0 (2006/11/14) notfoundMsg 属性を追加。displayMsg は、VIEW_USE_DISPLAY_MSG で制御
        4.0.0.0 (2007/10/18) メッセージリソース統合( getResource().getMessage ⇒ getResource().getLabel )
        6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。

    - #### release2

          protected void release2()

      タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
      オーバーライド:
        `release2` クラス内 `CommonTagSupport`
      変更履歴:

        4.0.0.0 (2007/10/10) dbid の初期値を、"DEFAULT" から null に変更
        5.1.6.0 (2010/05/01) DBLastSqlの処理は、DBTableModelが新規作成された処理でのみ行う。

    - #### setCommand

          public void setCommand(String cmd)

      【TAG】コマンド[NEW/RENEW]をセットします(初期値:NEW)。
      パラメータ:
        `cmd` - コマンド (public static final 宣言されている文字列)
      関連項目:
        コマンド定数
      説明:

             コマンドは,HTMLから(get/post)指定されますので,CMD_xxx で設定される
             フィールド定数値のいづれかを、指定できます。

    - #### setAction

          public void setAction(String cmd)

      【TAG】アクション(SCHEMAS,TABLES,COLUMNS,INDEXINFO,PROCEDURES)を指定します。
      パラメータ:
        `cmd` - アクション文字列
      関連項目:
        アクション定数
      説明:

             アクションは,HTMLから(get/post)指定されますので,ACT_xxx で設定される
             フィールド定数値のいづれかを、指定できます。

                  SCHEMAS    このデータベースで使用可能なスキーマ名を取得します。
                  TABLES     指定されたカタログで使用可能なテーブルに関する記述を取得します。
                  COLUMNS    指定されたカタログで使用可能なテーブル列の記述を取得します。
                  INDEXINFO  指定されたテーブルのインデックスと統計情報に関する記述を取得します。
                  PROCEDURES 指定されたカタログで使用可能なストアドプロシージャに関する記述を取得します。

      変更履歴:

        6.3.4.0 (2015/08/01) Arrays.toString から String.join に置き換え。
        6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。

    - #### setDbid

          public void setDbid(String id)

      【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します(初期値:null)。
      パラメータ:
        `id` - データベース接続ID
      説明:

             Queryオブジェクトを作成する時のDB接続IDを指定します。

    - #### setCatalog

          public void setCatalog(String catalog)

      【TAG】(通常は使いません)Queryオブジェクトを作成する時のカタログを指定します(初期値:null)。
      パラメータ:
        `catalog` - カタログ名
      説明:

             データベースに格納されたカタログ名と一致しなければならない。
             "" はカタログなしでカタログ名を検索する。
             null は、カタログ名を検索の限定に使用してはならないことを意味する

    - #### setSchema

          public void setSchema(String schema)

      【TAG】スキーマ名パターンをセットします(初期値:null)。
      パラメータ:
        `schema` - スキーマ名パターン
      説明:

             データベースに格納されたスキーマ名と一致しなければならない。
             "" はスキーマなしでスキーマ名を検索する。
             null は、スキーマ名を検索の限定に使用してはならないことを意味する

    - #### setTableName

          public void setTableName(String tableName)

      【TAG】テーブル名パターンをセットします(初期値:null)。
      パラメータ:
        `tableName` - テーブル名パターン
      説明:

             。データベースに格納されたテーブル名と一致しなければならない

    - #### setProcName

          public void setProcName(String procName)

      【TAG】プロシージャ名パターンをセットします(初期値:null)。
      パラメータ:
        `procName` - プロシージャ名パターン
      説明:

             。データベースに格納されたプロシージャ名と一致しなければならない

    - #### setColumnName

          public void setColumnName(String columnName)

      【TAG】列名パターンをセットします(初期値:null)。
      パラメータ:
        `columnName` - 列名パターン
      説明:

             データベースに格納された列名と一致しなければならない

    - #### setUnique

          public void setUnique(String uniqFlag)

      【TAG】返すインデックスの種類[true:ユニークのみ/false:非ユニーク含む]を指定します(初期値:false)。
      パラメータ:
        `uniqFlag` - 返すインデックスの種類 [true:ユニークのみ/false:非ユニーク含む]
      説明:

             true の場合は、一意の値のインデックスだけを返す。
             false の場合は、一意であるかどうかにかかわらずインデックスを返す
             初期値は、false:非ユニーク含む です。

    - #### setApproximate

          public void setApproximate(String appFlag)

      【TAG】統計情報の精度[true:概数/false:正確]を指定します(初期値:true)。
      パラメータ:
        `appFlag` - 統計情報の精度 [true:概数/false:正確]
      説明:

             指定されたテーブルのインデックスと統計情報に関する記述を取得する場合に
             結果の精度を指定します。
             true の場合は、結果は概数またはデータ値から外れることもある。
             false の場合は、正確であることが要求される
             初期値は、true:概数 です。

    - #### setTableId

          public void setTableId(String id)

      【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
      パラメータ:
        `id` - テーブルID (sessionに登録する時のID)
      説明:

             検索結果より、DBTableModelオブジェクトを作成します。これを、下流のviewタグ等に
             渡す場合に、通常は、session を利用します。その場合の登録キーです。
             query タグを同時に実行して、結果を求める場合、同一メモリに配置される為、
             この tableId 属性を利用して、メモリ空間を分けます。
            		(初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。

    - #### setDisplayMsg

          public void setDisplayMsg(String id)

      【TAG】検索結果を画面上に表示するメッセージリソースIDを指定します (初期値:VIEW_DISPLAY_MSG[=])。
      パラメータ:
        `id` - 処理結果表示メッセージID
      説明:

             ここでは、検索結果の件数や登録された件数をまず出力し、
             その次に、ここで指定したメッセージをリソースから取得して
             表示します。
             件数を表示させる場合は、displayMsg = "MSG0033"[　件検索しました] をセットしてください。
             表示させたくない場合は, displayMsg = "" をセットしてください。
             (初期値:システム定数のVIEW_DISPLAY_MSG[=])。

    - #### setNotfoundMsg

          public void setNotfoundMsg(String id)

      【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])。
      パラメータ:
        `id` - ゼロ件時表示メッセージID
      説明:

             ここでは、検索結果がゼロ件の場合のみ、特別なメッセージを表示させます。
             従来は、displayMsg と兼用で、『0　件検索しました』という表示でしたが、
             displayMsg の初期表示は、OFF になりましたので、ゼロ件の場合のみ別に表示させます。
             表示させたくない場合は, notfoundMsg = "" をセットしてください。
             初期値は、MSG0077[対象データはありませんでした]です。

    - #### setUseTimeView

          public void setUseTimeView(String flag)

      【TAG】処理時間を表示する TimeView を表示するかどうか[true:する/false:しない]を指定します (初期値:VIEW_USE_TIMEBAR[=true])。
      パラメータ:
        `flag` - 処理時間を表示 [true:する/false:しない]
      説明:

             true に設定すると、処理時間を表示するバーイメージが表示されます。
             これは、DB検索、APサーバー処理、画面表示の各処理時間をバーイメージで
             表示させる機能です。処理時間の目安になります。
             (初期値:VIEW_USE_TIMEBAR[=true])。

      変更履歴:

        6.3.6.0 (2015/08/16) useTimeView の初期値を、VIEW_USE_TIMEBAR にする。

    - #### getTagName

          protected String getTagName()

      タグの名称を、返します。 自分自身のクラス名より、自動的に取り出せないため、このメソッドをオーバーライドします。
      オーバーライド:
        `getTagName` クラス内 `CommonTagSupport`
      戻り値:
        タグの名称
      関連項目:
        `CommonTagSupport.getDocumentLink()`
      変更履歴:

        4.0.0.0 (2005/01/31) 新規追加

      このメソッドは、nullを返しません

    - #### setMainTrans

          public void setMainTrans(String flag)

      【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:true)。
      パラメータ:
        `flag` - メイントランザクションかどうか [true:メイン/false:その他]
      説明:

             この値は、ファイルダウンロード処理に影響します。この値がtrueに指定された時にcommitされたDBTableModelが
             ファイルダウンロードの対象の表になります。

             このパラメーターは、通常、各タグにより実装され、ユーザーが指定する必要はありません。
             但し、1つのJSP内でDBTableModelが複数生成される場合に、前に処理したDBTableModelについてファイルダウンロードをさせたい
             場合は、後ろでDBTableModelを生成するタグで、明示的にこの値をfalseに指定することで、ファイルダウンロード処理の対象から
             除外することができます。

      変更履歴:

        5.1.6.0 (2010/05/01) 新規作成

    - #### toString

          public String toString()

      このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
      オーバーライド:
        `toString` クラス内 `CommonTagSupport`
      戻り値:
        このクラスの文字列表現
      このメソッドは、nullを返しません

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.