openGionopenGion
5.4.3.4

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}"     // 処理カラム名の中の固定情報設定値
                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) 実装の大幅な修正
機能階層
DB登録
バージョン
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() を オーバーライドします。
protected  void release2()
          タグリブオブジェクトをリリースします。
 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 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 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, doStartTag, 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()
メソッドの詳細

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属性追加

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 属性に含まれる場合は、BTableModelのカラムに
 含まれる必要はありません。
 分解方法は、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 で値を取得します。
 こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。

setQuotCheck

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

パラメータ:
flag - クォーティションチェックする ("true")/しない (それ以外)
関連項目:
SystemData.USE_SQL_INJECTION_CHECK
説明:
 SQLインジェクション対策の一つとして、暫定的ではありますが、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
戻り値:
このクラスの文字列表現

openGion 5.4.3.4

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