クラス DBCopyTag
java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
jakarta.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.DBCopyTag
- すべての実装されたインタフェース:
BodyTag
,IterationTag
,JspTag
,Tag
,TryCatchFinally
,Serializable
データベースのデータコピー/移動/更新/削除を行うタグです。
検索結果のデータを、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 タグの対象です。
- 関連項目:
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 機能分類
- DB検索, DB登録
- 形式サンプル:
●形式: ・<og:dbCopy action="INSERT" table="TEST_A" table2="TEST_B" /> TEST_A のすべてカラム、データを、TEST_B にコピーします。 ・<og:dbCopy action="UPDATE" names2="A2,B2" table2="TEST_B" where2="C2=[c1]" > select a1,b1,c1 from TEST_A where d1='XXX' order by a1 </og:dbCopy> TEST_A のa1→A2 , b1→B2 カラムに、WHERE条件 TEST_B.C2 が、TEST_A.c1 に一致するデータのみ 更新します。 ●body:あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します) ●Tag定義: <og:dbCopy action 【TAG】実行方法[INSERT/UPDATE/DELETE/MERGE]を指定します(初期値:INSERT)。 useDelete 【TAG】(jdbcオプション)検索した元のデータを削除するかどうか[true:削除する/false:なにもしない]を指定します(初期値:false)。 maxRowCount 【TAG】(通常は使いません)データの最大読み込み件数を指定します (初期値:0:[無制限]) stopZero 【TAG】検索結果が0件のとき処理を続行するかどうか[true/false]を指定します(初期値:false[続行する]) dbid 【TAG】検索する対象のDB接続IDを指定します(初期値:null) table 【TAG】検索する対象のテーブル名を指定します names 【TAG】検索する対象のカラム名をCSV形式で複数指定します(初期値:*) where 【TAG】検索する対象を特定するキー条件(where句)を指定します orderBy 【TAG】検索する対象の検索順(order by句)を指定します dbid2 【TAG】登録する対象のDB接続IDを指定します(初期値:null) table2 【TAG】登録する対象のテーブル名を指定します names2 【TAG】登録する対象のカラム名をCSV形式で複数指定します omitNames2 【TAG】登録する対象外のカラム名をCSV形式で複数指定します where2 【TAG】登録する対象を特定するキー条件(where句)を指定します whereNames2 【TAG】登録する対象を特定するキー条件(where句)をCSV形式で複数指定します constKeys2 【TAG】設定値を固定値と置き換える対象となるカラム名をCSV形式で複数指定します constVals2 【TAG】設定値を固定値と置き換える対象となる設定値をCSV形式で複数指定します quotCheck 【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_SQL_INJECTION_CHECK[=true]) stopError 【TAG】登録処理エラーの時に処理を中止するかどうか[true/false]を設定します(初期値:true) dispError 【TAG】エラー時にメッセージを表示するか[true/false]を設定します。通常はstopErrorと併用(初期値:true) fetchSize 【TAG】(通常は使いません)データのフェッチサイズを指定します(初期値:DB_FETCH_SIZE[=]) 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:dbCopy>
●使用例 ・<og:dbCopy action="INSERT" names2="A2,B2,C2" table2="TEST_B" > select a1,b1,c1 from TEST_A where d1='XXX' order by a1 </og:dbCopy> TEST_A のa1→A2 , b1→B2 , c1→C2 カラムに、追加します。 ・<og:dbCopy action="INSERT" names="a1,b1,c1" table="TEST_A" names2="A2,B2,C2" table2="TEST_B" /> TEST_A のa1→A2 , b1→B2 , c1→C2 カラムに、追加します。 (先の例と同じ処理) ・<og:dbCopy action="INSERT" table="TEST_A" where="d1='1'" dbid="LOCAL" dbid2="OTHER" > 接続先:LOCAL の TEST_A の 全カラムのd1='1' のレコードを、接続先:OTHER のTEST_A に追加します。 接続先違い(ユーザー、やデータベース違い)へのINSERTです。 table2 を指定しない場合は、table と同じとみなされます。 ・<og:dbCopy action="INSERT" table="TEST_A" where="d1='1'" dbid="LOCAL" dbid2="OTHER" stopError="false" useDelete="true" > 接続先:LOCAL の TEST_A の 全カラムのd1='1' のレコードを、接続先:OTHER のTEST_A に移動します。 接続先違い(ユーザー、やデータベース違い)への移動です。 先のINSERT が成功したレコードは削除され、最後まで処理が行われます。 INSERTが失敗(つまり、接続先:OTHER にすでに、ユニークレコードが存在する場合など)時の、検索元のレコードは 削除されません。 ・<og:dbCopy action="MERGE" table="TEST_A" where="d1='1'" dbid="LOCAL" names2="a1,b1,c1" dbid2="OTHER" where="ukey=[ukey]" stopError="false" useDelete="true" > 接続先:LOCAL の TEST_A の 全カラムのd1='1' のレコードを、接続先:OTHER のTEST_A に移動します。 接続先:OTHER に、移動先.ukey=[移動元ukey] のデータがあれば、name2="a1,b1,c1" カラムだけ、UPDATE を行い、 更新件数が、0件の場合は、検索したすべてのカラムで、INSERT を行います。
- 導入されたバージョン:
- JDK8.0,
-
フィールドの概要
フィールド修飾子とタイプフィールド説明static final String
action 引数に渡す事の出来る アクションコマンド 削除する "DELETE"static final String
action 引数に渡す事の出来る アクションコマンド 追加する "INSERT"static final String
action 引数に渡す事の出来る アクションコマンド マージする "MERGE"static final String
action 引数に渡す事の出来る アクションコマンド 更新する "UPDATE"クラスから継承されたフィールド 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
-
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明int
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。int
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。int
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。protected void
release2()
タグリブオブジェクトをリリースします。void
【TAG】実行方法を指定します[INSERT/UPDATE/DELETE/MERGE] (初期値:INSERT)。void
setConstKeys2
(String keys) 【TAG】設定値を固定値と置き換える対象となるカラム名をCSV形式で複数指定します。void
setConstVals2
(String vals) 【TAG】設定値を固定値と置き換える対象となる設定値をCSV形式で複数指定します。void
【TAG】(通常は使いません)検索する対象のDB接続IDを指定します(初期値:null)。void
【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
【TAG】検索する対象のカラム名をCSV形式で複数指定します(初期値:*)。void
【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 flag) 【TAG】検索結果が0件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。void
【TAG】検索する対象のテーブル名を指定します(初期値:null)。void
【TAG】登録する対象のテーブル名を指定します(初期値:null)。void
setUseDelete
(String useDel) 【TAG】(jdbcオプション)検索した元のデータを削除するかどうか[true:削除する/false:なにもしない]を指定します(初期値:false)。void
【TAG】検索する対象を特定するキー条件(where句)を指定します。void
【TAG】登録する対象を特定するキー条件(where句)を指定します。void
setWhereNames2
(String names) 【TAG】登録する対象を特定するキー条件(where句)をCSV形式で複数指定します。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, useStrict, 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
-
フィールド詳細
-
ACT_INSERT
action 引数に渡す事の出来る アクションコマンド 追加する "INSERT"- 関連項目:
-
ACT_UPDATE
action 引数に渡す事の出来る アクションコマンド 更新する "UPDATE"- 関連項目:
-
ACT_DELETE
action 引数に渡す事の出来る アクションコマンド 削除する "DELETE"- 関連項目:
-
ACT_MERGE
action 引数に渡す事の出来る アクションコマンド マージする "MERGE"- 関連項目:
-
-
コンストラクタの詳細
-
DBCopyTag
public DBCopyTag()デフォルトコンストラクター- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
-
メソッドの詳細
-
doStartTag
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。- 定義:
doStartTag
インタフェース内Tag
- オーバーライド:
doStartTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
doAfterBody
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。- 定義:
doAfterBody
インタフェース内IterationTag
- オーバーライド:
doAfterBody
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示(SKIP_BODY)
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
doEndTag
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。- 定義:
doEndTag
インタフェース内Tag
- オーバーライド:
doEndTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
release2
タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。- オーバーライド:
release2
クラス内CommonTagSupport
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成, 6.9.1.0 (2018/02/26) displayMsg,overflowMsg,notfoundMsg は未使用のため、削除
-
setAction
【TAG】実行方法を指定します[INSERT/UPDATE/DELETE/MERGE] (初期値:INSERT)。- パラメータ:
action
- アクション [INSERT/UPDATE/DELETE/MERGE]- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- 指定できるアクションは、追加(INSERT)、更新(UPDATE)、削除(DELETE)、マージ(MERGE)です。 マージ以外は、お馴染みのSQL処理です。 マージは、条件にしたがって、UPDATEを行い、更新件数が、0件の場合に、INSERTを行う、複合処理です。 初期値は、INSERT です。
-
setUseDelete
【TAG】(jdbcオプション)検索した元のデータを削除するかどうか[true:削除する/false:なにもしない]を指定します(初期値:false)。- パラメータ:
useDel
- 検索した元のデータを削除するかどうか- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- アクションで指定した処理とともに、検索元のデータを削除するかどうかを指定します。 例えば、action="INSERT" で、useDelete="true" を指定すると、 ResultSet#deleteRow() を実行して、 検索元のデータを削除し、更新先にINSERT するため見かけ上、データ移動することになります。 stopError="false" (エラー時でも処理を継続する)にした場合、検索元のデータ削除は、 エラー行については、実行されません。ただし、UPDATE,DELETE 等で、対象データが 存在しない場合は、エラーと判断しないため、検索元のデータを削除します。 初期値は、false です。 ※ ResultSet#deleteRow() をサポートしない場合もあるため、仕様の有無は、対象DBをご確認ください。
-
setMaxRowCount
【TAG】(通常は使いません)データの最大読み込み件数を指定します(初期値:0:[無制限])。- パラメータ:
count
- 最大件数- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- 検索処理の最大件数を指定します。 このタグでは、検索都度、更新するため、メモリ等の負荷は、DBTableModel を使用する 通常の検索より少なくてすみます。 初期値は、0(無制限=実際は、Integer.MAX_VALUE)です。
-
setStopZero
【TAG】検索結果が0件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。- パラメータ:
flag
- 0件時停止可否 [true:処理を中止する/false:続行する]- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- 初期値は、false(続行する)です。
-
setDbid
【TAG】(通常は使いません)検索する対象のDB接続IDを指定します(初期値:null)。- パラメータ:
id
- データベース接続ID- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- 検索側のSELECT文を実行するDB接続IDを指定します。 これは、システムリソースで、DEFAULT_DB_URL 等で指定している データベース接続先 情報に、XX_DB_URL を定義することで、 dbid="XX" とすると、この接続先を使用して データベースにアクセスできます。 初期値は、Default(=null) です。
-
setTable
【TAG】検索する対象のテーブル名を指定します(初期値:null)。- パラメータ:
table
- テーブル名- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- 検索は、この table名を検索するか、BODYに記述された SQL 文を実行します。 単独検索の場合(JOIN等を行わない場合)に、使用します。
-
setNames
【TAG】検索する対象のカラム名をCSV形式で複数指定します(初期値:*)。- パラメータ:
names
- 引数の名称 (CSV形式)- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- 複数ある場合は、CSV形式で渡します。 BODYにSELECT文を記述した場合は、names 属性は不要です。 記述した場合は、SELECTしたカラムから、names属性に指定されたカラムだけを SELECT対象にします。 検索元の names と、登録先の、names2 が、対応関係になります。 初期値は、指定のカラムすべて(*)です。
-
setWhere
【TAG】検索する対象を特定するキー条件(where句)を指定します。- パラメータ:
where
- 検索条件 (where句)- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- 検索するSELECT文のwhere 句を指定します。通常の WHERE 句の書き方と同じで、 {@XXXX} などが使えます。 複雑な場合は、BODY に記述してください。where タグや、andタグ等を使って、 通常のquery タグで指定する方法を、そのまま使います。
-
setOrderBy
【TAG】検索する対象の検索順(order by句)を指定します。- パラメータ:
orderBy
- 検索条件 (order By句)- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- 検索するSELECT文のorder by 句を指定します。通常の order by 句の書き方と同じで、 {@XXXX} などが使えます。
-
setDbid2
【TAG】登録する対象のDB接続IDを指定します(初期値:null)。- パラメータ:
id
- データベース接続ID- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- 登録側のINSERT/UPDATE/DELETE文を実行するDB接続IDを指定します。 これは、システムリソースで、DEFAULT_DB_URL 等で指定している データベース接続先 情報に、XX_DB_URL を定義することで、 dbid="XX" とすると、この接続先を使用して データベースにアクセスできます。 初期値は、Default(=null) です。
-
setTable2
【TAG】登録する対象のテーブル名を指定します(初期値:null)。- パラメータ:
table
- テーブル名- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- 登録は、この table名を使用します。 table2 を指定しない場合は、table と同じテーブルが使用されます。 その場合は、必ず、table が指定されます。
-
setNames2
【TAG】登録する対象のカラム名をCSV形式で複数指定します(初期値:null)。- パラメータ:
names
- 引数の名称 (CSV形式)- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- 登録する対象のカラム名は、検索したカラム名の順番に割り当てられます。 例えば、names 属性に、a1,b1,c1 と指定した場合、names2 に、A2,B2,C2 と指定すれば、 順番に、a1→A2 , b1→B2 , c1→C2 に割り当てられます。 BODY にSELECT文を記述した場合も、names2 を指定すれば、指定のカラムの順番に割り当てます。 これは、SELECT 側と、INSERT/UPDATE 側のカラム名が異なる場合に、検索側に、別名(as 別名)を 指定する必要がありません。 指定しない場合(初期値)は、names または、SELECT文のすべてのカラムが、同一名として処理されます。
-
setOmitNames2
【TAG】登録対象外のカラム名をCSV形式で複数指定します(初期値:null)。- パラメータ:
omitNames
- 登録対象外のカラム列 (CSV形式)- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- names2 の逆で、登録対象から省くカラム名を指定します。 table 指定や、select * from で、カラム名を大量に指定したい場合、names2 で 指定するより、除外するカラム名を指定するほうが、少なく(判りやすく)なる 場合があります。
-
setWhere2
【TAG】登録する対象を特定するキー条件(where句)を指定します。- パラメータ:
where
- 検索条件 (where句)- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- 登録するUPDATE/DELETE文のwhere 句を指定します。通常の{@XXXX} のほかに、 [検索カラム名] も使用できます。これは、検索側の where 属性と異なります。 ただし、複雑な where 条件は使えませんので、できるだけ、検索側で調整して置いてください。 action="UPDATE/DELETE/MERGE" でのみ有効です。
-
setWhereNames2
【TAG】登録する対象を特定するキー条件(where句)をCSV形式で複数指定します。- パラメータ:
names
- 登録条件カラム (where句)作成のためのカラム名(CSV形式)- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- 生成するUPDATEのwhere 句を指定する方法として、複数のカラム名をCSV指定し、内部で KEY=[KEY] 文字列を作成します。 ここでは、カラム名は、データベースのカラム名と同じで、かつ、検索側にも 同じカラムのデータが存在していること、という条件付きとします。 また、where 条件との併用を行いますが、こちらの条件が先に使用され、where 条件は、 and を付けて、文字列結合されます。 例: CLM,SYSTEM_ID,KBSAKU ⇒ CLM=[CLM] and SYSTEM_ID=[SYSTEM_ID] and KBSAKU=[KBSAKU]
-
setConstKeys2
【TAG】設定値を固定値と置き換える対象となるカラム名をCSV形式で複数指定します。- パラメータ:
keys
- 固定値カラム (CSV形式)- 関連項目:
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- names 属性のカラムや table 属性より、INSERT/UPDATE文を作成する場合 外部から指定した固定値を指定するための、カラム名をCSV形式(CSV)で複数指定します。
-
setConstVals2
【TAG】設定値を固定値と置き換える対象となる設定値をCSV形式で複数指定します。- パラメータ:
vals
- 設定値(CSV形式)- 関連項目:
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- names 属性のカラムや table 属性より、INSERT/UPDATE文を作成する場合 外部から指定した固定値を指定するための、カラム名に対応する設定値をCSV形式(CSV)で 複数指定します。ここで指定する設定値は、constKeys2 属性と対応させます。
-
setQuotCheck
【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_SQL_INJECTION_CHECK[=])。- パラメータ:
flag
- クォートチェック [true:する/それ以外:しない]- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- SQLインジェクション対策の一つとして、暫定的ではありますが、SQLのパラメータに 渡す文字列にシングルクォート(') を許さない設定にすれば、ある程度は防止できます。 数字タイプの引数には、 or 5=5 などのシングルクォートを使用しないコードを埋めても、 数字チェックで検出可能です。文字タイプの場合は、必ず (')をはずして、 ' or 'A' like 'A のような形式になる為、(')チェックだけでも有効です。 (') が含まれていたエラーにする(true)/かノーチェックか(false)を指定します。 初期値は、SystemData#USE_SQL_INJECTION_CHECK です。
-
setStopError
【TAG】登録処理エラーの時に処理を中止するかどうか[true/false]を設定します(初期値:true)。- パラメータ:
flag
- エラー時処理中止 [true:中止する/false:中止しない]- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- false(中止しない)に設定する場合、後続処理では、{@DB.ERR_CODE}の値により、 異常/正常判断を行いますが、処理は、継続されます。 ちなみに、更新/削除処理で、対象データが存在しない場合(0件更新や、0件削除)は、エラーでは ありません。 初期値は、true(中止する)です。
-
setDispError
【TAG】エラー時にメッセージを表示するか[true/false]を設定します。通常はstopErrorと併用(初期値:true)。- パラメータ:
flag
- [true:表示する/false:表示しない]- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 説明:
- false(表示しない)に設定する場合、後続処理では、{@DB.ERR_MSG}の値により、 本来表示されるはずだったメッセージを取得可能です。 stopErrorと併用して、JSON形式でエラーを返す場合等に利用します。 初期値は、true(表示する)です。 ※false指定の場合は件数等も表示されなくなります。
-
setFetchSize
【TAG】(通常は使いません)データのフェッチサイズを指定します (初期値:DB_FETCH_SIZE[=])。- パラメータ:
size
- フェッチ行数- 説明:
- より多くの行が必要なときに、データベースから取り出す必要がある行数に ついてのヒントを JDBC ドライバに提供します。 指定された行数は、この Statement を使って作成された結果セットにだけ影響します。 指定された値が 0 の場合、ヒントは無視されます。 (初期値:システム定数のDB_FETCH_SIZE[=])。
-
toString
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。- オーバーライド:
toString
クラス内CommonTagSupport
- 戻り値:
- このクラスの文字列表現
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-