概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
openGion 5.5.3.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## org.opengion.hayabusa.taglib
クラス TableUpdateParamTag

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

すべての実装されたインタフェース:
  java.io.Serializable, javax.servlet.jsp.tagext.BodyTag, javax.servlet.jsp.tagext.IterationTag, javax.servlet.jsp.tagext.JspTag, javax.servlet.jsp.tagext.Tag, javax.servlet.jsp.tagext.TryCatchFinally

    public class TableUpdateParamTag

extends CommonTagSupport

TableUpdateTag にパラメーターを渡す為のタグクラスです。 汎用的なデータベース登録処理を行えるタグ tableUpdate タグを新規作成します。 これは、具体的なSLQを作成する tableUpdateParam タグと組み合わせて使用できます。 tableUpdate タグは、queryType に JDBCTableUpdate を指定します。基本的にこれだけ です。tableUpdateParam では、sqlType に、INSERT,COPY,UPDATE,MODIFY,DELETE の どれかを指定する事で、SQL文のタイプを指定します。COPY,MODIFY は command と 関連を持たす為に追加しているタイプで、INSERTやUPDATE と同じ処理を行います。 tableUpdateParam の table には、作成したい SQL のテーブルを指定します。 where 属性は、検索結果の DBTableModel の更新時に使用する条件を指定します。

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

       ●形式：<og:tableUpdate command="{@command}" queryType="JDBCTableUpdate" >
                  <og:tableUpdateParam
                      sqlType       = "{@sqlType}"       // INSERT,COPY,UPDATE,MODIFY,DELETE
                      table         = "{@TABLE_NAME}"    // 処理対象のテーブル名
                      names         = "{@names}"         // 処理対象のカラム名
                      omitNames     = "{@omitNames}"     // 処理対象外のカラム名
                      where         = "{@where}"         // 処理対象を特定するキー
                      constKeys     = "{@constKeys}"     // 処理カラム名の中の固定情報カラム名
                      constVals     = "{@constVals}"     // 処理カラム名の中の固定情報設定値
                      asNames       = "{@asNames}"       // 別名を付けたカラム名(select A as B from TBL の B を指定)
                      orgNames      = "{@orgNames}"      // tableの実際のカラム名(select A as B from TBL の A を指定)
                      funcKeys      = "{@funcKeys}"      // 関数等を設定するカラム名
                      funcVals      = "{@funcVals}"      // 関数等の設定値
                      logicalDelete = "{@logicalDelete}" // sqlTypeがDELETEの場合にもUPDATE文を発行
                  />
               </og:tableUpdate>

       ●body：なし

       ●使用例
          ・【entry.jsp】
               <og:tableUpdate command="{@command}" queryType="JDBCTableUpdate" >
                  <og:tableUpdateParam
                     sqlType  = "{@sqlType}"
                     table    = "{@MEM.TABLE_NAME}"
                     where    = "ROWID = [ROWID]"
                  />
               </og:tableUpdate>

変更履歴:

  3.8.8.0 (2007/12/22) 新規作成
  4.1.2.0 (2008/03/12) 実装の大幅な修正

機能階層
  ＤＢ登録
バージョン
  4.0
作成者
  Kazuhiko Hasegawa
導入されたバージョン:
  JDK5.0,

フィールドの概要
`static java.lang.String` | `SQL_TYPE` sqlType属性に設定できる値 "|INSERT|COPY|UPDATE|MODIFY|DELETE|"

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

コンストラクタの概要
`TableUpdateParamTag()`

メソッドの概要
`int` | `doEndTag()` Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
`int` | `doStartTag()` Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
`protected void` | `release2()` タグリブオブジェクトをリリースします。
`void` | `setAsNames(java.lang.String keys)` 【TAG】別名を付けたカラム名(select A as B from TBL の B を指定)をCSV形式で複数指定します。
`void` | `setConstKeys(java.lang.String keys)` 【TAG】設定値を固定値と置き換える対象となるカラム名をCSV形式で複数指定します。
`void` | `setConstObjKey(java.lang.String key)` 【TAG】固定情報カラムの処理オブジェクトを特定するキーを設定します(初期値:SYSTEM_ID)。
`void` | `setConstVals(java.lang.String vals)` 【TAG】設定値を固定値と置き換える対象となる設定値をCSV形式で複数指定します。
`void` | `setFuncKeys(java.lang.String keys)` 【TAG】関数等を設定するカラム名をCSV形式で複数指定します。
`void` | `setFuncVals(java.lang.String vals)` 【TAG】関数等の設定値をCSV形式で複数指定します。
`void` | `setLogicalDelete(java.lang.String flg)` 【TAG】sqlType="DELETE"の場合に論理削除(UPDATE)を行うかどうかを指定します。
`void` | `setNames(java.lang.String nms)` 【TAG】処理対象のカラム名をCSV形式で複数指定します。
`void` | `setOmitNames(java.lang.String nms)` 【TAG】処理対象外のカラム名をCSV形式で複数指定します。
`void` | `setOrgNames(java.lang.String keys)` 【TAG】tableの実際のカラム名(select A as B from TBL の A を指定)をCSV形式で複数指定します。
`void` | `setQuotCheck(java.lang.String flag)` 【TAG】リクエスト情報の クォーティション(') 存在チェックを実施するかどうか(true/false)を設定します(初期値:USE_SQL_INJECTION_CHECK)。
`void` | `setSqlType(java.lang.String type)` 【TAG】BODY部に書かれている SQLタイプを指定します。
`void` | `setTable(java.lang.String tbl)` 【TAG】処理対象のテーブル名を指定します。
`void` | `setWhere(java.lang.String wr)` 【TAG】処理対象を特定するキー条件（where句）を指定します。
`java.lang.String` | `toString()` このオブジェクトの文字列表現を返します。

クラス org.opengion.hayabusa.taglib.CommonTagSupport から継承されたメソッド
`add, add, addEventColumn, addEventColumn, check, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsglbl, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getUser, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseKey, 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`

フィールドの詳細

### SQL_TYPE

    public static final java.lang.String SQL_TYPE

  sqlType属性に設定できる値 "|INSERT|COPY|UPDATE|MODIFY|DELETE|"

  関連項目:
    定数フィールド値

コンストラクタの詳細

### TableUpdateParamTag

    public TableUpdateParamTag()

メソッドの詳細

### doStartTag

    public int doStartTag()

  Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。

  定義:
    インタフェース `javax.servlet.jsp.tagext.Tag` 内の `doStartTag`
  オーバーライド:
    クラス `CommonTagSupport` 内の `doStartTag`
  戻り値:
    int 後続処理の指示( SKIP_BODY )
  変更履歴:

    5.5.1.9 (2012/04/19) エラーチェックを先に行います。

### doEndTag

    public int doEndTag()

  Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。

  定義:
    インタフェース `javax.servlet.jsp.tagext.Tag` 内の `doEndTag`
  オーバーライド:
    クラス `CommonTagSupport` 内の `doEndTag`
  戻り値:
    int 後続処理の指示
  変更履歴:

    4.3.7.0 (2009/06/01) 論理削除対応

### release2

    protected void release2()

  タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。

  オーバーライド:
    クラス `CommonTagSupport` 内の `release2`
  変更履歴:

    4.3.7.0 (2009/06/01) logicalDelete属性追加
    5.5.1.9 (2012/04/19) asNames、orgNames、funcKeys、funcVals属性追加

### setSqlType

    public void setSqlType(java.lang.String type)

  【TAG】BODY部に書かれている SQLタイプを指定します。

  パラメータ:
    `type` - BODY部に書かれている SQL タイプ
  説明:

         SQLタイプは、INSERT,COPY,UPDATE,MODIFY,DELETE の中から指定する
         必要があります。これらは、内部に書かれるSQLの形式を指定するのに使用します。
         内部処理は、DBTableModelの改廃コード(A,C,D)に対して使用される
         SQL を選択する場合の情報に使用されます。
         なお、COPY と MODIFY は、command で指定できる簡易機能として用意しています。
         上位の TableUpdateTag の sqlType 属性 と同じsqlType 属性の場合のみ、SQL文を
         合成・出力します。(上位のsqlTypeがnullの場合は、無条件実行します。)
         指定のタイプが、異なる場合は、なにも処理を行いません。

### setTable

    public void setTable(java.lang.String tbl)

  【TAG】処理対象のテーブル名を指定します。

  パラメータ:
    `tbl` - String
  関連項目:
    `setNames( String )`, `setWhere( String )`, `setSqlType( String )`
  説明:

         テーブル名を指定することで、sqlTypeに応じた QUERYを生成することが出来ます。
         生成する場合のカラムを特定する場合は、names 属性で指定できます。
         また、WHERE条件は、where属性で指定します。

### setNames

    public void setNames(java.lang.String nms)

  【TAG】処理対象のカラム名をCSV形式で複数指定します。

  パラメータ:
    `nms` - String
  関連項目:
    `setTable( String )`, `setOmitNames( String )`
  説明:

         生成するQUERYのカラム名をカンマ区切り文字(CSV)で複数指定します。
         指定がない場合は、DBTableModel の全カラム(※)を使用して、QUERYを構築します。
         一般に、テーブル結合してDBTableModelを構築した場合は、登録すべきカラムを
         指定する必要があります。
         (※)正確には、DBTableModel の全カラムのうち、ROWID,ROWNUM,WRITABLE カラムは
         無視します。
         分解方法は、通常のパラメータ取得後に、CSV分解します。

  変更履歴:

    3.8.8.5 (2007/03/09) 通常のパラメータ取得後に、CSV分解に戻します。

### setOmitNames

    public void setOmitNames(java.lang.String nms)

  【TAG】処理対象外のカラム名をCSV形式で複数指定します。

  パラメータ:
    `nms` - String
  関連項目:
    `setTable( String )`, `setNames( String )`
  説明:

         生成するQUERYのカラム名に指定しないカラム名をカンマ区切り文字(CSV)で複数指定します。
         指定がない場合は、DBTableModel の全カラム(※)を使用して、QUERYを構築します。
         テーブル結合などで、処理したくないカラム数の方が少ない場合に、names ですべてを
         指定するより少ない記述ですみます。
         (※)正確には、DBTableModel の全カラムのうち、ROWID,ROWNUM,WRITABLE カラムは
         無視します。

### setWhere

    public void setWhere(java.lang.String wr)

  【TAG】処理対象を特定するキー条件（where句）を指定します。

  パラメータ:
    `wr` - 検索条件（where句）
  説明:

         生成するQUERYのwhere 句を指定します。通常の WHERE 句の書き方と同じで、
         DBTableModelの値を割り当てたい箇所に[カラム名] を記述します。
         文字列の場合、設定値をセットするときに、シングルコーテーションを
         使用しますが、[カラム名]で指定する場合は、その前後に、(')シングル
         コーテーションは、不要です。
         {@XXXX}変数を使用する場合は、パース時に固定文字に置き換えられる為、
         文字列指定時の(')シングルコーテーションが必要になります。
         例：FGJ='1' and CLM=[CLM] and SYSTEM_ID in ([SYSID],'**') and KBSAKU='{@KBSAKU}'

### setConstKeys

    public void setConstKeys(java.lang.String keys)

  【TAG】設定値を固定値と置き換える対象となるカラム名をCSV形式で複数指定します。

  パラメータ:
    `keys` - String
  関連項目:
    `setConstVals( String )`
  説明:

         names 属性のカラムや table 属性より、QUERYを作成して、DBTableModelの値を
         割り当てる場合、DBTableModelの値ではなく、外部から指定した固定値を
         割り当てたい場合に、そのカラム名をカンマ区切り文字(CSV)で複数指定します。
         ここで指定するカラム名は、names 属性に含まれるか、DBTableModelのカラムとして
         存在する必要があります。なお、names 属性に含まれる場合は、DBTableModelのカラムに
         含まれる必要はありません。
         分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。
         こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。

### setConstVals

    public void setConstVals(java.lang.String vals)

  【TAG】設定値を固定値と置き換える対象となる設定値をCSV形式で複数指定します。

  パラメータ:
    `vals` - String
  関連項目:
    `setConstKeys( String )`
  説明:

         names 属性のカラムや table 属性より、QUERYを作成して、DBTableModelの
         値を割り当てる場合、DBTableModelの値ではなく、外部から指定した固定値を
         割り当てたい場合に、そのカラム名に対応する設定値をカンマ区切り文字(CSV)で
         複数指定します。ここで指定する設定値は、constKeys 属性と対応させます。
         分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。
         こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。

### setFuncKeys

    public void setFuncKeys(java.lang.String keys)

  【TAG】関数等を設定するカラム名をCSV形式で複数指定します。

  パラメータ:
    `keys` - String
  関連項目:
    `setFuncVals( String )`
  説明:

         constVals 属性で設定する値は、必ずシングルクオートが付与されます。
         その場合、関数などを設定したい場合でも、文字列として設定しようとします。
         ここで指定するカラム名（funcKeys）自身は、constKeys と同じ書式です。
         分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。
         こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。

  変更履歴:

    5.5.1.9 (2012/04/19) 新規追加

### setFuncVals

    public void setFuncVals(java.lang.String vals)

  【TAG】関数等の設定値をCSV形式で複数指定します。

  パラメータ:
    `vals` - String
  関連項目:
    `setFuncKeys( String )`
  説明:

         funcKeys 属性に対応する 関数などの設定値を割り当てます。
         constVals 属性との違いは、funcVals の設定値は、そのままの形で、SQL文の
         構築に使われます。
         分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。
         こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。

  変更履歴:

    5.5.1.9 (2012/04/19) 新規追加

### setAsNames

    public void setAsNames(java.lang.String keys)

  【TAG】別名を付けたカラム名(select A as B from TBL の B を指定)をCSV形式で複数指定します。

  パラメータ:
    `keys` - String
  関連項目:
    `setOrgNames( String )`
  説明:

         SELECT 文を記述したとき、別名を付けていたり、SELECTしたテーブルと別のテーブルに
         DBTableModelの値を書き込む場合、DBTableModel の持っているカラム名と、実際に
         書き込むカラム名が異なります。そのようなケースに、元の別名カラムを指定します。
         orgNames属性の並び順と、asNames属性の並び順を合わせておく必要があります。
         このカラム名は、DBTableModel には持っているが、テーブル側には持っていない値
         なので、内部的に omitNames 属性に値を設定します。利用者は、omitNames に
         書き込む必要はありません。
         分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。
         こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。

  変更履歴:

    5.5.1.9 (2012/04/19) 新規追加

### setOrgNames

    public void setOrgNames(java.lang.String keys)

  【TAG】tableの実際のカラム名(select A as B from TBL の A を指定)をCSV形式で複数指定します。

  パラメータ:
    `keys` - String
  関連項目:
    `setAsNames( String )`
  説明:

         SELECT 文を記述したとき、別名を付けていたり、SELECTしたテーブルと別のテーブルに
         DBTableModelの値を書き込む場合、DBTableModel の持っているカラム名と、実際に
         書き込むカラム名が異なります。そのようなケースに、テーブルの実カラムを指定します。
         orgNames属性の並び順と、asNames属性の並び順を合わせておく必要があります。
         このカラム名は、DBTableModel には持っていませんが、テーブル側には持っている値
         なので、このカラム名で、SQL文を構築します。 UPDATE TBL SET A=[B] WHERE … となります。
         分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。
         こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。

  変更履歴:

    5.5.1.9 (2012/04/19) 新規追加

### setQuotCheck

    public void setQuotCheck(java.lang.String flag)

  【TAG】リクエスト情報の クォーティション(') 存在チェックを実施するかどうか(true/false)を設定します(初期値:USE_SQL_INJECTION_CHECK)。

  パラメータ:
    `flag` - クォーティションチェックする ("true")／しない (それ以外)
  関連項目:
    `SystemData.USE_SQL_INJECTION_CHECK`
  説明:

         ＳＱＬインジェクション対策の一つとして、暫定的ではありますが、SQLのパラメータに
         渡す文字列にクォーティション(') を許さない設定にすれば、ある程度は防止できます。
         数字タイプの引数には、 or 5=5 などのクォーティションを使用しないコードを埋めても、
         数字チェックで検出可能です。文字タイプの場合は、必ず (')をはずして、
         ' or 'A' like 'A のような形式になる為、(')チェックだけでも有効です。
         (') が含まれていたエラーにする（true)／かノーチェックか(false)を指定します。
         初期値は、システムパラメータのUSE_SQL_INJECTION_CHECK です。

### setConstObjKey

    public void setConstObjKey(java.lang.String key)

  【TAG】固定情報カラムの処理オブジェクトを特定するキーを設定します(初期値:SYSTEM_ID)。

  パラメータ:
    `key` - 固定情報カラムの処理オブジェクトを特定するキー
  説明:

         固定情報カラム をシステム単位にJavaクラスで管理できます。
         そのクラスオブジェクトは、org.opengion.hayabusa.db.DBConstValue インターフェースを
         継承した、plugin クラスになります。
         そのクラスを特定するキーワードを指定します。
         初期値は、SYSTEM_ID でシステム単位にクラスを作成します。
         もし、他のシステムと共通の場合は、継承だけさせることも可能です。
         対応したDBConstValueクラスがプラグインとして存在しない場合は、
         システムリソースのDEFAULT_CONST_CLASSで指定されたクラスが利用されます。

         初期値は、SYSTEM_ID です。

### setLogicalDelete

    public void setLogicalDelete(java.lang.String flg)

  【TAG】sqlType="DELETE"の場合に論理削除(UPDATE)を行うかどうかを指定します。(初期値:false)。

  パラメータ:
    `flg` - 論理削除(UPDATE)を行うかどうか
  説明:

         sqlType="DELETE"の場合に論理削除(UPDATE)を行うかどうかを指定します。
         trueが指定された場合は、DELETE文ではなく、UPDATE文が発行されます。
         falseが指定された場合は、DELETE文が発行されます。
         さらに論理削除を行う場合、org.opengion.hayabusa.db.DBConstValue インターフェースに
         定義されている、getLogicalDeleteKeys()及びgetLogicalDeleteValsを実装することで、
         論理削除する際のフラグの更新方法を統一的に管理することが可能になります。
         初期値は、false(物理削除する)です

### toString

    public java.lang.String toString()

  このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。

  オーバーライド:
    クラス `CommonTagSupport` 内の `toString`
  戻り値:
    このクラスの文字列表現

概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
| openGion 5.5.3.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

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