クラス DBCopyTag
- java.lang.Object
-
- javax.servlet.jsp.tagext.TagSupport
-
- javax.servlet.jsp.tagext.BodyTagSupport
-
- org.opengion.hayabusa.taglib.CommonTagSupport
-
- org.opengion.hayabusa.taglib.DBCopyTag
-
- すべての実装されたインタフェース:
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 DBCopyTag extends CommonTagSupport
データベースのデータコピー/移動/更新/削除を行うタグです。検索結果のデータを、action に応じた方法で、処理します。 SELECT文は、BODY部に記述することも可能です。 BODY にSELECT文を記述しない場合は、names と、table から、SELECT文を作成します。 names2 は、INSERTやUPDATE の カラム名で、SELECT文の先頭から順に適用します。 WHERE条件は、SELECT結果を利用できますが、必ず、names2 のカラムか、そうでないならば、 それ以降に記述してください。 このタグは、DBTableModel を経由せず、直接、接続元から接続先へデータ処理を行います。 接続元の1レコード単位に、接続先に対して、処理を実行します。 よって、大量データ処理が可能ですが、まとめ処理を行っていない分、時間が掛かります。 用途としては、WORKテーブルへのデータコピーや、BKUPテーブルへのコピーが考えられ ますが、それらは、select insert などの直接的な処理のほうが良いです。 ここでは、別ユーザーや、別インスタンス、または、別データベース(ORACLEから、MySQLへ)など、 dbid違いのテーブルへのデータ処理用途を、想定しています。 なので、複雑な処理や、PL/SQL等のデータベース独自処理は行えません。 SELECT文は、直接記述できるため、データベース固有の関数や、構文を記載可能ですが、 INSERT,UPDATE,DELETE 文は、基本的に共通構文であり、WHERE条件等も、一般的は範囲に とどめてください。 SELECTカラムとINSERTカラムが異なる場合は、name 指定と、name2 指定のカラムが対応します。 追加、更新先のカラム名に変更して置いてください。 BODY部にSELECT文を記述した場合は、カラム順が、name 順となり、name2 と対応されます。 constKeys,constVals も、更新先のカラム名で指定します。 処理の途中でエラー(例えば、ユニークキー制約等)になった場合は、stopError属性の 値に応じて処理を継続するかどうかを決定します。 stopError="true" が初期値なので、エラー時点で、処理を中断します。 action="INSERT" SELECT結果を、table2 に、INSERT します。where2,whereNames2 は使用しません。 name2 を使用しない場合は、name と同じカラム配列で、INSERT します。 stopError="false"(エラー時も継続する) とした場合、SELECT結果は、最後まで INSERTを試みます。 action="UPDATE" SELECT結果を、table2 に、where2,whereNames2 に基づいて UPDATE します。 SELECTには、更新で使用する where条件となるカラムを含める必要があります。 更新するカラムは、name2 で指定することになります。 更新対象が存在しなかった場合は、エラーとは判定していません。 action="DELETE" SELECT結果を、table2 に、where2,whereNames2 に基づいて table2 のデータを 削除 します。 SELECTには、削除で使用する where条件となるカラムを含める必要があります。 削除対象が存在しなかった場合は、エラーとは判定していません。 action="MERGE" SELECT結果を、table2 に、where2,whereNames2 に基づいて UPDATE/INSERT します。 SELECTには、更新で使用する where条件となるカラムを含める必要があります。 更新するカラムは、name2 で指定することになります。 更新対象が存在しなかった場合は、INSERT になります。 (つまり、更新を一度試みて、更新件数が、0件の場合に、INSERTします。) INSERTするカラムは、SELECTしたすべてのカラムが対象になります。 useDelete="true" を指定すると、検索元のデータを削除します。 INSERT 時に指定すれば、MOVE と同じ効果になります。 stopError="false" (エラー時でも処理を継続する)にした場合、検索元のデータ削除は、 エラー行については、実行されません。ただし、UPDATE,DELETE 等で、対象データが 存在しない場合は、エラーと判断しないため、検索元のデータを削除します。 SystemData の USE_SQL_INJECTION_CHECK が true か、quotCheck 属性が true の場合は、 SQLインジェクション対策用のシングルクォートチェックを行います。リクエスト引数に シングルクォート(')が含まれると、エラーになります。 DBLastSql はセットされません。 つまり、このタグでSELECTされたデータを、ファイル出力することはできません。 実行後にリクエストパラメータに以下の値がセットされます。 DB.COUNT : 検索結果の件数 DB.UPCOUNT : 追加/更新/削除結果の件数 DB.ERR_CODE : 検索結果のエラーコード(複数合った場合は、最後のエラーコード) ※ このタグは、Transaction タグの対象です。
- 関連項目:
- 直列化された形式
- 導入されたバージョン:
- JDK8.0,
-
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 static String
ACT_DELETE
action 引数に渡す事の出来る アクションコマンド 削除する "DELETE"static String
ACT_INSERT
action 引数に渡す事の出来る アクションコマンド 追加する "INSERT"static String
ACT_MERGE
action 引数に渡す事の出来る アクションコマンド マージする "MERGE"static String
ACT_UPDATE
action 引数に渡す事の出来る アクションコマンド 更新する "UPDATE"-
クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport
BR, BUFFER_MIDDLE, CR
-
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 DBCopyTag()
デフォルトコンストラクター
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 int
doAfterBody()
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。int
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。int
doStartTag()
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。protected void
release2()
タグリブオブジェクトをリリースします。void
setAction(String action)
【TAG】実行方法を指定します[INSERT/UPDATE/DELETE/MERGE] (初期値:INSERT)。void
setConstKeys2(String keys)
【TAG】設定値を固定値と置き換える対象となるカラム名をCSV形式で複数指定します。void
setConstVals2(String vals)
【TAG】設定値を固定値と置き換える対象となる設定値をCSV形式で複数指定します。void
setDbid(String id)
【TAG】(通常は使いません)検索する対象のDB接続IDを指定します(初期値:null)。void
setDbid2(String id)
【TAG】登録する対象のDB接続IDを指定します(初期値:null)。void
setDispError(String flag)
【TAG】エラー時にメッセージを表示するか[true/false]を設定します。void
setFetchSize(String size)
【TAG】(通常は使いません)データのフェッチサイズを指定します (初期値:DB_FETCH_SIZE[=])。void
setMaxRowCount(String count)
【TAG】(通常は使いません)データの最大読み込み件数を指定します(初期値:0:[無制限])。void
setNames(String names)
【TAG】検索する対象のカラム名をCSV形式で複数指定します(初期値:*)。void
setNames2(String names)
【TAG】登録する対象のカラム名をCSV形式で複数指定します(初期値:null)。void
setOmitNames2(String omitNames)
【TAG】登録対象外のカラム名をCSV形式で複数指定します(初期値:null)。void
setOrderBy(String orderBy)
【TAG】検索する対象の検索順(order by句)を指定します。void
setQuotCheck(String flag)
【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_SQL_INJECTION_CHECK[=])。void
setStopError(String flag)
【TAG】登録処理エラーの時に処理を中止するかどうか[true/false]を設定します(初期値:true)。void
setStopZero(String cmd)
【TAG】検索結果が0件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。void
setTable(String table)
【TAG】検索する対象のテーブル名を指定します(初期値:null)。void
setTable2(String table)
【TAG】登録する対象のテーブル名を指定します(初期値:null)。void
setUseDelete(String useDel)
【TAG】(jdbcオプション)検索した元のデータを削除するかどうか[true:削除する/false:なにもしない]を指定します(初期値:false)。void
setWhere(String where)
【TAG】検索する対象を特定するキー条件(where句)を指定します。void
setWhere2(String where)
【TAG】登録する対象を特定するキー条件(where句)を指定します。void
setWhereNames2(String names)
【TAG】登録する対象を特定するキー条件(where句)をCSV形式で複数指定します。String
toString()
このオブジェクトの文字列表現を返します。-
クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport
add, add, addEventColumn, addEventColumn, check, commitTableObject, 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
-
クラスから継承されたメソッド 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
-
-
-
-
フィールドの詳細
-
ACT_INSERT
public static final String ACT_INSERT
action 引数に渡す事の出来る アクションコマンド 追加する "INSERT"- 関連項目:
- 定数フィールド値
-
ACT_UPDATE
public static final String ACT_UPDATE
action 引数に渡す事の出来る アクションコマンド 更新する "UPDATE"- 関連項目:
- 定数フィールド値
-
ACT_DELETE
public static final String ACT_DELETE
action 引数に渡す事の出来る アクションコマンド 削除する "DELETE"- 関連項目:
- 定数フィールド値
-
-
コンストラクタの詳細
-
DBCopyTag
public DBCopyTag()
デフォルトコンストラクター
-
-
メソッドの詳細
-
doStartTag
public int doStartTag()
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。- 定義:
doStartTag
インタフェース内javax.servlet.jsp.tagext.Tag
- オーバーライド:
doStartTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示
-
doAfterBody
public int doAfterBody()
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。- 定義:
doAfterBody
インタフェース内javax.servlet.jsp.tagext.IterationTag
- オーバーライド:
doAfterBody
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示(SKIP_BODY)
-
doEndTag
public int doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。- 定義:
doEndTag
インタフェース内javax.servlet.jsp.tagext.Tag
- オーバーライド:
doEndTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示
-
release2
protected void release2()
タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。- オーバーライド:
release2
クラス内CommonTagSupport
-
setAction
public void setAction(String action)
【TAG】実行方法を指定します[INSERT/UPDATE/DELETE/MERGE] (初期値:INSERT)。- パラメータ:
action
- アクション [INSERT/UPDATE/DELETE/MERGE]
-
setUseDelete
public void setUseDelete(String useDel)
【TAG】(jdbcオプション)検索した元のデータを削除するかどうか[true:削除する/false:なにもしない]を指定します(初期値:false)。- パラメータ:
useDel
- 検索した元のデータを削除するかどうか
-
setMaxRowCount
public void setMaxRowCount(String count)
【TAG】(通常は使いません)データの最大読み込み件数を指定します(初期値:0:[無制限])。- パラメータ:
count
- 最大件数
-
setStopZero
public void setStopZero(String cmd)
【TAG】検索結果が0件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。- パラメータ:
cmd
- 0件時停止可否 [true:処理を中止する/false:続行する]
-
setDbid
public void setDbid(String id)
【TAG】(通常は使いません)検索する対象のDB接続IDを指定します(初期値:null)。- パラメータ:
id
- データベース接続ID
-
setTable
public void setTable(String table)
【TAG】検索する対象のテーブル名を指定します(初期値:null)。- パラメータ:
table
- テーブル名
-
setNames
public void setNames(String names)
【TAG】検索する対象のカラム名をCSV形式で複数指定します(初期値:*)。- パラメータ:
names
- 引数の名称 (CSV形式)
-
setWhere
public void setWhere(String where)
【TAG】検索する対象を特定するキー条件(where句)を指定します。- パラメータ:
where
- 検索条件 (where句)
-
setOrderBy
public void setOrderBy(String orderBy)
【TAG】検索する対象の検索順(order by句)を指定します。- パラメータ:
orderBy
- 検索条件 (order By句)
-
setDbid2
public void setDbid2(String id)
【TAG】登録する対象のDB接続IDを指定します(初期値:null)。- パラメータ:
id
- データベース接続ID
-
setTable2
public void setTable2(String table)
【TAG】登録する対象のテーブル名を指定します(初期値:null)。- パラメータ:
table
- テーブル名
-
setNames2
public void setNames2(String names)
【TAG】登録する対象のカラム名をCSV形式で複数指定します(初期値:null)。- パラメータ:
names
- 引数の名称 (CSV形式)
-
setOmitNames2
public void setOmitNames2(String omitNames)
【TAG】登録対象外のカラム名をCSV形式で複数指定します(初期値:null)。- パラメータ:
omitNames
- 登録対象外のカラム列 (CSV形式)
-
setWhere2
public void setWhere2(String where)
【TAG】登録する対象を特定するキー条件(where句)を指定します。- パラメータ:
where
- 検索条件 (where句)
-
setWhereNames2
public void setWhereNames2(String names)
【TAG】登録する対象を特定するキー条件(where句)をCSV形式で複数指定します。- パラメータ:
names
- 登録条件カラム (where句)作成のためのカラム名(CSV形式)
-
setConstKeys2
public void setConstKeys2(String keys)
【TAG】設定値を固定値と置き換える対象となるカラム名をCSV形式で複数指定します。- パラメータ:
keys
- 固定値カラム (CSV形式)- 関連項目:
setConstVals2( String )
-
setConstVals2
public void setConstVals2(String vals)
【TAG】設定値を固定値と置き換える対象となる設定値をCSV形式で複数指定します。- パラメータ:
vals
- 設定値(CSV形式)- 関連項目:
setConstKeys2( String )
-
setQuotCheck
public void setQuotCheck(String flag)
【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_SQL_INJECTION_CHECK[=])。- パラメータ:
flag
- クォートチェック [true:する/それ以外:しない]
-
setStopError
public void setStopError(String flag)
【TAG】登録処理エラーの時に処理を中止するかどうか[true/false]を設定します(初期値:true)。- パラメータ:
flag
- エラー時処理中止 [true:中止する/false:中止しない]
-
setDispError
public void setDispError(String flag)
【TAG】エラー時にメッセージを表示するか[true/false]を設定します。通常はstopErrorと併用(初期値:true)。- パラメータ:
flag
- [true:表示する/false:表示しない]
-
setFetchSize
public void setFetchSize(String size)
【TAG】(通常は使いません)データのフェッチサイズを指定します (初期値:DB_FETCH_SIZE[=])。- パラメータ:
size
- フェッチ行数
-
toString
public String toString()
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。- オーバーライド:
toString
クラス内CommonTagSupport
- 戻り値:
- このクラスの文字列表現
-
-