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 タグの対象です。 ●形式:
・<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:[無制限])
displayMsg 【TAG】検索結果を画面上に表示するメッセージリソースIDを指定します (初期値:VIEW_DISPLAY_MSG[=])
overflowMsg 【TAG】検索データが最大検索数をオーバーした場合に表示するメッセージリソースIDを指定します (初期値:MSG0007[検索結果が、制限行数を超えましたので、残りはカットされました])
notfoundMsg 【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])
stopZero 【TAG】検索結果が0件のとき処理を続行するかどうか[true/false]を指定します(初期値:false[続行する])
dbid 【TAG】検索する対象のDB接続IDを指定します(初期値:null)
table 【TAG】検索する対象のテーブル名を指定します
names 【TAG】検索する対象のカラム名をCSV形式で複数指定します(初期値:*)
omitNames 【TAG】検索する対象外のカラム名をCSV形式で複数指定します
where 【TAG】検索する対象を特定するキー条件(where句)を指定します
orderBy 【TAG】検索する対象の検索順(order by句)を指定します
dbid2 【TAG】登録する対象のDB接続IDを指定します(初期値:null)
table2 【TAG】登録する対象のテーブル名を指定します
names2 【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】(通常は使いません)データのフェッチサイズを指定します(初期値:100)
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 を行います。
| 6.8.6.0 (2018/01/19) 新規作成 |
| 修飾子とタイプ | フィールドと説明 |
|---|---|
static java.lang.String |
ACT_DELETE
action 引数に渡す事の出来る アクションコマンド 削除する "DELETE"
|
static java.lang.String |
ACT_INSERT
action 引数に渡す事の出来る アクションコマンド 追加する "INSERT"
|
static java.lang.String |
ACT_MERGE
action 引数に渡す事の出来る アクションコマンド マージする "MERGE"
|
static java.lang.String |
ACT_UPDATE
action 引数に渡す事の出来る アクションコマンド 更新する "UPDATE"
|
static int |
FETCH_SIZE
fetchSize の初期値 100
|
BR, BUFFER_MIDDLE, CRbodyContentid, pageContextEVAL_BODY_BUFFERED, EVAL_BODY_TAGEVAL_BODY_AGAINEVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE| コンストラクタと説明 |
|---|
DBCopyTag()
デフォルトコンストラクター
|
| 修飾子とタイプ | メソッドと説明 |
|---|---|
int |
doAfterBody()
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
|
int |
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
|
int |
doStartTag()
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
|
protected void |
release2()
タグリブオブジェクトをリリースします。
|
void |
setAction(java.lang.String action)
【TAG】実行方法を指定します[INSERT/UPDATE/DELETE/MERGE] (初期値:INSERT)。
|
void |
setConstKeys2(java.lang.String keys)
【TAG】設定値を固定値と置き換える対象となるカラム名をCSV形式で複数指定します。
|
void |
setConstVals2(java.lang.String vals)
【TAG】設定値を固定値と置き換える対象となる設定値をCSV形式で複数指定します。
|
void |
setDbid(java.lang.String id)
【TAG】(通常は使いません)検索する対象のDB接続IDを指定します(初期値:null)。
|
void |
setDbid2(java.lang.String id)
【TAG】登録する対象のDB接続IDを指定します(初期値:null)。
|
void |
setDispError(java.lang.String flag)
【TAG】エラー時にメッセージを表示するか[true/false]を設定します。
|
void |
setDisplayMsg(java.lang.String id)
【TAG】検索結果を画面上に表示するメッセージリソースIDを指定します
(初期値:VIEW_DISPLAY_MSG[=])。
|
void |
setFetchSize(java.lang.String size)
【TAG】(通常は使いません)データのフェッチサイズを指定します(初期値:100)。
|
void |
setMaxRowCount(java.lang.String count)
【TAG】(通常は使いません)データの最大読み込み件数を指定します(初期値:0:[無制限])。
|
void |
setNames(java.lang.String names)
【TAG】検索する対象のカラム名をCSV形式で複数指定します(初期値:*)。
|
void |
setNames2(java.lang.String names)
【TAG】登録する対象のカラム名をCSV形式で複数指定します(初期値:null)。
|
void |
setNotfoundMsg(java.lang.String id)
【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])。
|
void |
setOmitNames(java.lang.String omitNames)
【TAG】検索対象外のカラム名をCSV形式で複数指定します(初期値:null)。
|
void |
setOrderBy(java.lang.String orderBy)
【TAG】検索する対象の検索順(order by句)を指定します。
|
void |
setOverflowMsg(java.lang.String id)
【TAG】検索データが最大検索数をオーバーした場合に表示するメッセージリソースIDを指定します
(初期値:MSG0007[検索結果が、制限行数を超えましたので、残りはカットされました])。
|
void |
setQuotCheck(java.lang.String flag)
【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します
(初期値:USE_SQL_INJECTION_CHECK[=true])。
|
void |
setStopError(java.lang.String flag)
【TAG】登録処理エラーの時に処理を中止するかどうか[true/false]を設定します(初期値:true)。
|
void |
setStopZero(java.lang.String cmd)
【TAG】検索結果が0件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。
|
void |
setTable(java.lang.String table)
【TAG】検索する対象のテーブル名を指定します(初期値:null)。
|
void |
setTable2(java.lang.String table)
【TAG】登録する対象のテーブル名を指定します(初期値:null)。
|
void |
setUseDelete(java.lang.String useDel)
【TAG】(jdbcオプション)検索した元のデータを削除するかどうか[true:削除する/false:なにもしない]を指定します(初期値:false)。
|
void |
setWhere(java.lang.String where)
【TAG】検索する対象を特定するキー条件(where句)を指定します。
|
void |
setWhere2(java.lang.String where)
【TAG】登録する対象を特定するキー条件(where句)を指定します。
|
void |
setWhereNames2(java.lang.String names)
【TAG】登録する対象を特定するキー条件(where句)をCSV形式で複数指定します。
|
java.lang.String |
toString()
このオブジェクトの文字列表現を返します。
|
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getCommonTagThrowable, 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, 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, useXssCheckdoInitBody, getBodyContent, getPreviousOut, release, setBodyContentfindAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValueclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetParent, setPageContext, setParentpublic static final java.lang.String ACT_INSERT
public static final java.lang.String ACT_UPDATE
public static final java.lang.String ACT_DELETE
public static final java.lang.String ACT_MERGE
public static final int FETCH_SIZE
public int doStartTag()
doStartTag インタフェース内 TagdoStartTag クラス内 CommonTagSupport| 6.8.6.0 (2018/01/19) 新規作成 |
public int doAfterBody()
doAfterBody インタフェース内 IterationTagdoAfterBody クラス内 CommonTagSupport| 6.8.6.0 (2018/01/19) 新規作成 |
public int doEndTag()
doEndTag インタフェース内 TagdoEndTag クラス内 CommonTagSupport| 6.8.6.0 (2018/01/19) 新規作成 |
protected void release2()
release2 クラス内 CommonTagSupport| 6.8.6.0 (2018/01/19) 新規作成 |
public void setAction(java.lang.String action)
action - アクション [INSERT/UPDATE/DELETE/MERGE]指定できるアクションは、追加(INSERT)、更新(UPDATE)、削除(DELETE)、マージ(MERGE)です。 マージ以外は、お馴染みのSQL処理です。 マージは、条件にしたがって、UPDATEを行い、更新件数が、0件の場合に、INSERTを行う、複合処理です。 初期値は、INSERT です。
| 6.8.6.0 (2018/01/19) 新規作成 |
public void setUseDelete(java.lang.String useDel)
useDel - 検索した元のデータを削除するかどうかアクションで指定した処理とともに、検索元のデータを削除するかどうかを指定します。 例えば、action="INSERT" で、useDelete="true" を指定すると、 ResultSet#deleteRow() を実行して、 検索元のデータを削除し、更新先にINSERT するため見かけ上、データ移動することになります。 stopError="false" (エラー時でも処理を継続する)にした場合、検索元のデータ削除は、 エラー行については、実行されません。ただし、UPDATE,DELETE 等で、対象データが 存在しない場合は、エラーと判断しないため、検索元のデータを削除します。 初期値は、false です。 ※ ResultSet#deleteRow() をサポートしない場合もあるため、仕様の有無は、対象DBをご確認ください。
| 6.8.6.0 (2018/01/19) 新規作成 |
public void setMaxRowCount(java.lang.String count)
count - 最大件数検索処理の最大件数を指定します。 このタグでは、検索都度、更新するため、メモリ等の負荷は、DBTableModel を使用する 通常の検索より少なくてすみます。 初期値は、0(無制限=実際は、Integer.MAX_VALUE)です。
| 6.8.6.0 (2018/01/19) 新規作成 |
public void setDisplayMsg(java.lang.String id)
id - 表示メッセージIDSystemData.VIEW_DISPLAY_MSGここでは、検索結果の件数や登録された件数をまず出力し、 その次に、ここで指定したメッセージをリソースから取得して表示します。 件数を表示させる場合は、displayMsg = "MSG0033"[ 件検索しました] をセットしてください。 表示させたくない場合は, displayMsg = "" をセットしてください。 (初期値:システム定数のVIEW_DISPLAY_MSG[=])。
| 6.8.6.0 (2018/01/19) 新規作成 |
public void setOverflowMsg(java.lang.String id)
id - オーバー時メッセージID検索結果が、maxRowCount で設定された値より多い場合、何らかのデータは検索されず 切り捨てられたことになります。 ここでは、displayMsg を表示した後、必要に応じて、このメッセージを表示します。 表示させたくない場合は, overflowMsg = "" をセットしてください。 初期値は、MSG0007[検索結果が、制限行数を超えましたので、残りはカットされました]です。
| 6.8.6.0 (2018/01/19) 新規作成 |
public void setNotfoundMsg(java.lang.String id)
id - ゼロ件メッセージIDここでは、検索結果がゼロ件の場合のみ、特別なメッセージを表示させます。 従来は、displayMsg と兼用で、『0 件検索しました』という表示でしたが、 displayMsg の初期表示は、OFF になりましたので、ゼロ件の場合のみ別に表示させます。 表示させたくない場合は, notfoundMsg = "" をセットしてください。 初期値は、MSG0077[対象データはありませんでした]です。
| 6.8.6.0 (2018/01/19) 新規作成 |
public void setStopZero(java.lang.String cmd)
cmd - 0件時停止可否 [true:処理を中止する/false:続行する]初期値は、false(続行する)です。
| 6.8.6.0 (2018/01/19) 新規作成 |
public void setDbid(java.lang.String id)
id - データベース接続ID検索側のSELECT文を実行するDB接続IDを指定します。 これは、システムリソースで、DEFAULT_DB_URL 等で指定している データベース接続先 情報に、XX_DB_URL を定義することで、 dbid="XX" とすると、この 接続先を使用して データベースにアクセスできます。 初期値は、Default(=null) です。
| 6.8.6.0 (2018/01/19) 新規作成 |
public void setTable(java.lang.String table)
table - テーブル名検索は、この table名を検索するか、BODYに記述された SQL 文を実行します。 単独検索の場合(JOIN等を行わない場合)に、使用します。
| 6.8.6.0 (2018/01/19) 新規作成 |
public void setNames(java.lang.String names)
names - 引数の名称 (CSV形式)複数ある場合は、CSV形式で渡します。 BODYにSELECT文を記述した場合は、names 属性は不要です。 記述した場合は、SELECTしたカラムから、names属性に指定されたカラムだけを SELECT対象にします。 検索元の names と、登録先の、names2 が、対応関係になります。 初期値は、指定のカラムすべて(*)です。
| 6.8.6.0 (2018/01/19) 新規作成 |
public void setOmitNames(java.lang.String omitNames)
omitNames - 読取対象外のカラム列 (CSV形式)names の逆で、検索対象から省くカラム名を指定します。 table 指定や、select * from で、カラム名を大量に指定したい場合、names で 指定するより、除外するカラム名を指定するほうが、少なく(判りやすく)なる 場合があります。
| 6.8.6.0 (2018/01/19) 新規作成 |
public void setWhere(java.lang.String where)
where - 検索条件 (where句) 検索するSELECT文のwhere 句を指定します。通常の WHERE 句の書き方と同じで、
{@XXXX} などが使えます。
複雑な場合は、BODY に記述してください。where タグや、andタグ等を使って、
通常のquery タグで指定する方法を、そのまま使います。| 6.8.6.0 (2018/01/19) 新規作成 |
public void setOrderBy(java.lang.String orderBy)
orderBy - 検索条件 (order By句) 検索するSELECT文のorder by 句を指定します。通常の order by 句の書き方と同じで、
{@XXXX} などが使えます。| 6.8.6.0 (2018/01/19) 新規作成 |
public void setDbid2(java.lang.String id)
id - データベース接続ID登録側のINSERT/UPDATE/DELETE文を実行するDB接続IDを指定します。 これは、システムリソースで、DEFAULT_DB_URL 等で指定している データベース接続先 情報に、XX_DB_URL を定義することで、 dbid="XX" とすると、この 接続先を使用して データベースにアクセスできます。 初期値は、Default(=null) です。
| 6.8.6.0 (2018/01/19) 新規作成 |
public void setTable2(java.lang.String table)
table - テーブル名登録は、この table名を使用します。 table2 を指定しない場合は、table と同じテーブルが使用されます。 その場合は、必ず、table が指定されます。
| 6.8.6.0 (2018/01/19) 新規作成 |
public void setNames2(java.lang.String names)
names - 引数の名称 (CSV形式)登録する対象のカラム名は、検索したカラム名の順番に割り当てられます。 例えば、names 属性に、a1,b1,c1 と指定した場合、names2 に、A2,B2,C2 と指定すれば、 順番に、a1→A2 , b1→B2 , c1→C2 に割り当てられます。 BODY にSELECT文を記述した場合も、names2 を指定すれば、指定のカラムの順番に割り当てます。 これは、SELECT 側と、INSERT/UPDATE 側のカラム名が異なる場合に、検索側に、別名(as 別名)を 指定する必要がありません。 指定しない場合(初期値)は、names または、SELECT文のすべてのカラムが、同一名として処理されます。
| 6.8.6.0 (2018/01/19) 新規作成 |
public void setWhere2(java.lang.String where)
where - 検索条件 (where句) 登録するUPDATE/DELETE文のwhere 句を指定します。通常の{@XXXX} のほかに、
[検索カラム名] も使用できます。これは、検索側の where 属性と異なります。
ただし、複雑な where 条件は使えませんので、できるだけ、検索側で調整して置いてください。
action="UPDATE/DELETE/MERGE" でのみ有効です。| 6.8.6.0 (2018/01/19) 新規作成 |
public void setWhereNames2(java.lang.String names)
names - 登録条件カラム (where句)作成のためのカラム名(CSV形式)生成するUPDATEのwhere 句を指定する方法として、複数のカラム名をCSV指定し、内部で KEY=[KEY] 文字列を作成します。 ここでは、カラム名は、データベースのカラム名と同じで、かつ、検索側にも 同じカラムのデータが存在していること、という条件付きとします。 また、where 条件との併用を行いますが、こちらの条件が先に使用され、where 条件は、 and を付けて、文字列結合されます。 例: CLM,SYSTEM_ID,KBSAKU ⇒ CLM=[CLM] and SYSTEM_ID=[SYSTEM_ID] and KBSAKU=[KBSAKU]
| 6.8.6.0 (2018/01/19) 新規作成 |
public void setConstKeys2(java.lang.String keys)
keys - 固定値カラム (CSV形式)setConstVals2( String )names 属性のカラムや table 属性より、INSERT/UPDATE文を作成する場合 外部から指定した固定値を指定するための、カラム名をCSV形式(CSV)で複数指定します。
| 6.8.6.0 (2018/01/19) 新規作成 |
public void setConstVals2(java.lang.String vals)
vals - 設定値(CSV形式)setConstKeys2( String )names 属性のカラムや table 属性より、INSERT/UPDATE文を作成する場合 外部から指定した固定値を指定するための、カラム名に対応する設定値をCSV形式(CSV)で 複数指定します。ここで指定する設定値は、constKeys2 属性と対応させます。
| 6.8.6.0 (2018/01/19) 新規作成 |
public void setQuotCheck(java.lang.String flag)
flag - クォートチェック [true:する/それ以外:しない] SQLインジェクション対策の一つとして、暫定的ではありますが、SQLのパラメータに
渡す文字列にシングルクォート(') を許さない設定にすれば、ある程度は防止できます。
数字タイプの引数には、 or 5=5 などのシングルクォートを使用しないコードを埋めても、
数字チェックで検出可能です。文字タイプの場合は、必ず (')をはずして、
' or 'A' like 'A のような形式になる為、(')チェックだけでも有効です。
(') が含まれていたエラーにする(true)/かノーチェックか(false)を指定します。
初期値は、SystemData#USE_SQL_INJECTION_CHECK です。| 6.8.6.0 (2018/01/19) 新規作成 |
public void setStopError(java.lang.String flag)
flag - エラー時処理中止 [true:中止する/false:中止しない] false(中止しない)に設定する場合、後続処理では、{@DB.ERR_CODE}の値により、
異常/正常判断を行いますが、処理は、継続されます。
ちなみに、更新/削除処理で、対象データが存在しない場合(0件更新や、0件削除)は、エラーでは
ありません。
初期値は、true(中止する)です。| 6.8.6.0 (2018/01/19) 新規作成 |
public void setDispError(java.lang.String flag)
flag - [true:表示する/false:表示しない] false(表示しない)に設定する場合、後続処理では、{@DB.ERR_MSG}の値により、
本来表示されるはずだったメッセージを取得可能です。
stopErrorと併用して、JSON形式でエラーを返す場合等に利用します。
初期値は、true(表示する)です。
※false指定の場合は件数等も表示されなくなります。| 6.8.6.0 (2018/01/19) 新規作成 |
public void setFetchSize(java.lang.String size)
size - フェッチ行数 (初期値:100)より多くの行が必要なときに、データベースから取り出す必要がある行数に ついてのヒントを JDBC ドライバに提供します。 指定された行数は、この Statement を使って作成された結果セットにだけ影響します。 指定された値が 0 の場合、ヒントは無視されます。 初期値は、100 です。
public java.lang.String toString()
toString クラス内 CommonTagSupport| 6.8.6.0 (2018/01/19) 新規作成 |
Webアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.