org.opengion.hayabusa.taglib

## クラス DBCopyTag

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

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

      public class DBCopyTag
      extends CommonTagSupport

       データベースのデータコピー/移動/更新/削除を行うタグです。

       検索結果のﾃﾞｰﾀを、action に応じた方法で、処理します。
       SELECT文は、BODY部に記述することも可能です。
       BODY にSELECT文を記述しない場合は、names と、table から、SELECT文を作成します。
       names2 は、INSERTやUPDATE の カラム名で、SELECT文の先頭から順に適用します。
       WHERE条件は、SELECT結果を利用できますが、必ず、names2 のカラムか、そうでないならば、
       それ以降に記述してください。

       このタグは、DBTableModel を経由せず、直接、接続元から接続先へデータ処理を行います。
       接続元の１レコード単位に、接続先に対して、処理を実行します。
       よって、大量データ処理が可能ですが、まとめ処理を行っていない分、時間が掛かります。

       用途としては、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 になります。
          (つまり、更新を一度試みて、更新件数が、０件の場合に、INSERTします。)
          INSERTするｶﾗﾑは、SELECTしたすべてのｶﾗﾑが対象になります。

       useDelete="true" を指定すると、検索元のﾃﾞｰﾀを削除します。
       INSERT 時に指定すれば、MOVE と同じ効果になります。
       stopError="false" (エラー時でも処理を継続する)にした場合、検索元のﾃﾞｰﾀ削除は、
       エラー行については、実行されません。ただし、UPDATE,DELETE 等で、対象データが
       存在しない場合は、エラーと判断しないため、検索元のﾃﾞｰﾀを削除します。

       SystemData の USE_SQL_INJECTION_CHECK が true か、quotCheck 属性が true の場合は、
       ＳＱＬインジェクション対策用のシングルクォートチェックを行います。リクエスト引数に
       シングルクォート(')が含まれると、エラーになります。

       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】検索結果が０件のとき処理を続行するかどうか[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 を行い、
                 更新件数が、０件の場合は、検索したすべてのカラムで、INSERT を行います。

  変更履歴:

    6.8.6.0 (2018/01/19) 新規作成

  機能分類
    ＤＢ検索, ＤＢ登録
  バージョン
    6.8.6.0 (2018/01/19)
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK8.0,

- - ### フィールドのサマリー

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `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

    - ### クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport

      `BR, BUFFER_MIDDLE, CR`

    - ### クラスから継承されたフィールド 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`

  - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `DBCopyTag()` デフォルトコンストラクター

  - ### メソッドのサマリー

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `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】検索結果が０件のとき処理を停止するかどうか[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()` このオブジェクトの文字列表現を返します。

    - ### クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport

      `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, 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`

- - ### フィールドの詳細

    - #### ACT_INSERT

          public static final java.lang.String ACT_INSERT

      action 引数に渡す事の出来る アクションコマンド 追加する "INSERT"
      関連項目:
        定数フィールド値

    - #### ACT_UPDATE

          public static final java.lang.String ACT_UPDATE

      action 引数に渡す事の出来る アクションコマンド 更新する "UPDATE"
      関連項目:
        定数フィールド値

    - #### ACT_DELETE

          public static final java.lang.String ACT_DELETE

      action 引数に渡す事の出来る アクションコマンド 削除する "DELETE"
      関連項目:
        定数フィールド値

    - #### ACT_MERGE

          public static final java.lang.String ACT_MERGE

      action 引数に渡す事の出来る アクションコマンド マージする "MERGE"
      関連項目:
        定数フィールド値

    - #### FETCH_SIZE

          public static final int FETCH_SIZE

      fetchSize の初期値 100
      関連項目:
        定数フィールド値

  - ### コンストラクタの詳細

    - #### DBCopyTag

          public DBCopyTag()

      デフォルトコンストラクター
      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

  - ### メソッドの詳細

    - #### doStartTag

          public int doStartTag()

      Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
      定義:
        `doStartTag` インタフェース内 `Tag`
      オーバーライド:
        `doStartTag` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示
      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### doAfterBody

          public int doAfterBody()

      Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
      定義:
        `doAfterBody` インタフェース内 `IterationTag`
      オーバーライド:
        `doAfterBody` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示(SKIP_BODY)
      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### doEndTag

          public int doEndTag()

      Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
      定義:
        `doEndTag` インタフェース内 `Tag`
      オーバーライド:
        `doEndTag` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示
      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### release2

          protected void release2()

      タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
      オーバーライド:
        `release2` クラス内 `CommonTagSupport`
      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setAction

          public void setAction(java.lang.String action)

      【TAG】実行方法を指定します[INSERT/UPDATE/DELETE/MERGE] (初期値:INSERT)。
      パラメータ:
        `action` - アクション [INSERT/UPDATE/DELETE/MERGE]
      説明:

             指定できるアクションは、追加(INSERT)、更新(UPDATE)、削除(DELETE)、マージ(MERGE)です。
             マージ以外は、お馴染みのSQL処理です。
             マージは、条件にしたがって、UPDATEを行い、更新件数が、0件の場合に、INSERTを行う、複合処理です。
             初期値は、INSERT です。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setUseDelete

          public void setUseDelete(java.lang.String useDel)

      【TAG】(jdbcオプション)検索した元のﾃﾞｰﾀを削除するかどうか[true:削除する/false:なにもしない]を指定します(初期値:false)。
      パラメータ:
        `useDel` - 検索した元のﾃﾞｰﾀを削除するかどうか
      説明:

             アクションで指定した処理とともに、検索元のデータを削除するかどうかを指定します。
             例えば、action="INSERT" で、useDelete="true" を指定すると、 ResultSet#deleteRow() を実行して、
             検索元のデータを削除し、更新先にINSERT するため見かけ上、データ移動することになります。
             stopError="false" (エラー時でも処理を継続する)にした場合、検索元のﾃﾞｰﾀ削除は、
             エラー行については、実行されません。ただし、UPDATE,DELETE 等で、対象データが
             存在しない場合は、エラーと判断しないため、検索元のﾃﾞｰﾀを削除します。
             初期値は、false です。
             ※ ResultSet#deleteRow() をサポートしない場合もあるため、仕様の有無は、対象DBをご確認ください。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setMaxRowCount

          public void setMaxRowCount(java.lang.String count)

      【TAG】(通常は使いません)データの最大読み込み件数を指定します(初期値:0:[無制限])。
      パラメータ:
        `count` - 最大件数
      説明:

             検索処理の最大件数を指定します。
             このタグでは、検索都度、更新するため、メモリ等の負荷は、DBTableModel を使用する
             通常の検索より少なくてすみます。
             初期値は、0(無制限=実際は、Integer.MAX_VALUE)です。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setDisplayMsg

          public void setDisplayMsg(java.lang.String id)

      【TAG】検索結果を画面上に表示するメッセージリソースIDを指定します (初期値:VIEW_DISPLAY_MSG[=])。
      パラメータ:
        `id` - 表示メッセージID
      関連項目:
        `SystemData.VIEW_DISPLAY_MSG`
      説明:

             ここでは、検索結果の件数や登録された件数をまず出力し、
             その次に、ここで指定したメッセージをリソースから取得して表示します。
             件数を表示させる場合は、displayMsg = "MSG0033"[　件検索しました] をセットしてください。
             表示させたくない場合は, displayMsg = "" をセットしてください。
             (初期値:システム定数のVIEW_DISPLAY_MSG[=])。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setOverflowMsg

          public void setOverflowMsg(java.lang.String id)

      【TAG】検索データが最大検索数をオーバーした場合に表示するメッセージリソースIDを指定します (初期値:MSG0007[検索結果が、制限行数を超えましたので、残りはカットされました])。
      パラメータ:
        `id` - オーバー時メッセージID
      説明:

             検索結果が、maxRowCount で設定された値より多い場合、何らかのデータは検索されず
             切り捨てられたことになります。
             ここでは、displayMsg を表示した後、必要に応じて、このメッセージを表示します。
             表示させたくない場合は, overflowMsg = "" をセットしてください。
             初期値は、MSG0007[検索結果が、制限行数を超えましたので、残りはカットされました]です。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setNotfoundMsg

          public void setNotfoundMsg(java.lang.String id)

      【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])。
      パラメータ:
        `id` - ゼロ件メッセージID
      説明:

             ここでは、検索結果がゼロ件の場合のみ、特別なメッセージを表示させます。
             従来は、displayMsg と兼用で、『0　件検索しました』という表示でしたが、
             displayMsg の初期表示は、OFF になりましたので、ゼロ件の場合のみ別に表示させます。
             表示させたくない場合は, notfoundMsg = "" をセットしてください。
             初期値は、MSG0077[対象データはありませんでした]です。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setStopZero

          public void setStopZero(java.lang.String cmd)

      【TAG】検索結果が０件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。
      パラメータ:
        `cmd` - ０件時停止可否 [true:処理を中止する/false:続行する]
      説明:

             初期値は、false(続行する)です。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setDbid

          public void setDbid(java.lang.String id)

      【TAG】(通常は使いません)検索する対象のDB接続IDを指定します(初期値:null)。
      パラメータ:
        `id` - データベース接続ID
      説明:

             検索側のSELECT文を実行するDB接続IDを指定します。
             これは、システムリソースで、DEFAULT_DB_URL 等で指定している データベース接続先
             情報に、XX_DB_URL を定義することで、 dbid="XX" とすると、この 接続先を使用して
             データベースにアクセスできます。
             初期値は、Default(=null) です。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setTable

          public void setTable(java.lang.String table)

      【TAG】検索する対象のテーブル名を指定します(初期値:null)。
      パラメータ:
        `table` - テーブル名
      説明:

             検索は、この table名を検索するか、BODYに記述された SQL 文を実行します。
             単独検索の場合(JOIN等を行わない場合)に、使用します。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setNames

          public void setNames(java.lang.String names)

      【TAG】検索する対象のカラム名をCSV形式で複数指定します(初期値:*)。
      パラメータ:
        `names` - 引数の名称 (CSV形式)
      説明:

             複数ある場合は、CSV形式で渡します。
             BODYにSELECT文を記述した場合は、names 属性は不要です。
             記述した場合は、SELECTしたカラムから、names属性に指定されたカラムだけを
             SELECT対象にします。
             検索元の names と、登録先の、names2 が、対応関係になります。
             初期値は、指定のカラムすべて(*)です。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setOmitNames

          public void setOmitNames(java.lang.String omitNames)

      【TAG】検索対象外のカラム名をCSV形式で複数指定します(初期値:null)。
      パラメータ:
        `omitNames` - 読取対象外のカラム列 (CSV形式)
      説明:

             names の逆で、検索対象から省くカラム名を指定します。
             table 指定や、select * from で、カラム名を大量に指定したい場合、names で
             指定するより、除外するカラム名を指定するほうが、少なく（判りやすく）なる
             場合があります。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setWhere

          public void setWhere(java.lang.String where)

      【TAG】検索する対象を特定するキー条件(where句)を指定します。
      パラメータ:
        `where` - 検索条件 (where句)
      説明:

             検索するSELECT文のwhere 句を指定します。通常の WHERE 句の書き方と同じで、
             {@XXXX} などが使えます。
             複雑な場合は、BODY に記述してください。where タグや、andタグ等を使って、
             通常のquery タグで指定する方法を、そのまま使います。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setOrderBy

          public void setOrderBy(java.lang.String orderBy)

      【TAG】検索する対象の検索順(order by句)を指定します。
      パラメータ:
        `orderBy` - 検索条件 (order By句)
      説明:

             検索するSELECT文のorder by 句を指定します。通常の order by 句の書き方と同じで、
             {@XXXX} などが使えます。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setDbid2

          public void setDbid2(java.lang.String id)

      【TAG】登録する対象のDB接続IDを指定します(初期値:null)。
      パラメータ:
        `id` - データベース接続ID
      説明:

             登録側のINSERT/UPDATE/DELETE文を実行するDB接続IDを指定します。
             これは、システムリソースで、DEFAULT_DB_URL 等で指定している データベース接続先
             情報に、XX_DB_URL を定義することで、 dbid="XX" とすると、この 接続先を使用して
             データベースにアクセスできます。
             初期値は、Default(=null) です。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setTable2

          public void setTable2(java.lang.String table)

      【TAG】登録する対象のテーブル名を指定します(初期値:null)。
      パラメータ:
        `table` - テーブル名
      説明:

             登録は、この table名を使用します。
             table2 を指定しない場合は、table と同じテーブルが使用されます。
             その場合は、必ず、table が指定されます。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setNames2

          public void setNames2(java.lang.String names)

      【TAG】登録する対象のカラム名をCSV形式で複数指定します(初期値:null)。
      パラメータ:
        `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) 新規作成

    - #### setWhere2

          public void setWhere2(java.lang.String where)

      【TAG】登録する対象を特定するキー条件(where句)を指定します。
      パラメータ:
        `where` - 検索条件 (where句)
      説明:

             登録するUPDATE/DELETE文のwhere 句を指定します。通常の{@XXXX} のほかに、
             [検索カラム名] も使用できます。これは、検索側の where 属性と異なります。
             ただし、複雑な where 条件は使えませんので、できるだけ、検索側で調整して置いてください。
             action="UPDATE/DELETE/MERGE" でのみ有効です。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setWhereNames2

          public void setWhereNames2(java.lang.String names)

      【TAG】登録する対象を特定するキー条件(where句)をCSV形式で複数指定します。
      パラメータ:
        `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) 新規作成

    - #### setConstKeys2

          public void setConstKeys2(java.lang.String keys)

      【TAG】設定値を固定値と置き換える対象となるカラム名をCSV形式で複数指定します。
      パラメータ:
        `keys` - 固定値カラム (CSV形式)
      関連項目:
        `setConstVals2( String )`
      説明:

             names 属性のカラムや table 属性より、INSERT/UPDATE文を作成する場合
             外部から指定した固定値を指定するための、カラム名をCSV形式(CSV)で複数指定します。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setConstVals2

          public void setConstVals2(java.lang.String vals)

      【TAG】設定値を固定値と置き換える対象となる設定値をCSV形式で複数指定します。
      パラメータ:
        `vals` - 設定値(CSV形式)
      関連項目:
        `setConstKeys2( String )`
      説明:

             names 属性のカラムや table 属性より、INSERT/UPDATE文を作成する場合
             外部から指定した固定値を指定するための、カラム名に対応する設定値をCSV形式(CSV)で
             複数指定します。ここで指定する設定値は、constKeys2 属性と対応させます。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setQuotCheck

          public void setQuotCheck(java.lang.String flag)

      【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_SQL_INJECTION_CHECK[=true])。
      パラメータ:
        `flag` - クォートチェック [true:する/それ以外:しない]
      説明:

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

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setStopError

          public void setStopError(java.lang.String flag)

      【TAG】登録処理エラーの時に処理を中止するかどうか[true/false]を設定します(初期値:true)。
      パラメータ:
        `flag` - エラー時処理中止 [true:中止する/false:中止しない]
      説明:

             false(中止しない)に設定する場合、後続処理では、{@DB.ERR_CODE}の値により、
             異常/正常判断を行いますが、処理は、継続されます。
             ちなみに、更新/削除処理で、対象データが存在しない場合(0件更新や、0件削除)は、エラーでは
             ありません。
             初期値は、true(中止する)です。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setDispError

          public void setDispError(java.lang.String flag)

      【TAG】エラー時にメッセージを表示するか[true/false]を設定します。通常はstopErrorと併用(初期値:true)。
      パラメータ:
        `flag` - [true:表示する/false:表示しない]
      説明:

             false(表示しない)に設定する場合、後続処理では、{@DB.ERR_MSG}の値により、
             本来表示されるはずだったメッセージを取得可能です。
             stopErrorと併用して、JSON形式でエラーを返す場合等に利用します。
             初期値は、true(表示する)です。
             ※false指定の場合は件数等も表示されなくなります。

      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

    - #### setFetchSize

          public void setFetchSize(java.lang.String size)

      【TAG】(通常は使いません)データのフェッチサイズを指定します(初期値:100)。
      パラメータ:
        `size` - フェッチ行数 (初期値:100)
      説明:

             より多くの行が必要なときに、データベースから取り出す必要がある行数に
             ついてのヒントを JDBC ドライバに提供します。
             指定された行数は、この Statement を使って作成された結果セットにだけ影響します。
             指定された値が 0 の場合、ヒントは無視されます。
             初期値は、100 です。

    - #### toString

          public java.lang.String toString()

      このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
      オーバーライド:
        `toString` クラス内 `CommonTagSupport`
      戻り値:
        このクラスの文字列表現
      変更履歴:

        6.8.6.0 (2018/01/19) 新規作成

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