概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
openGion 5.7.4.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## org.opengion.hayabusa.taglib
クラス DirectTableInsertTag

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

すべての実装されたインタフェース:
  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 DirectTableInsertTag

extends CommonTagSupport

指定のファイルを直接データベースに登録するデータ入力タグです。 通常の readTable などは、DBTableModelオブジェクトを介して全件メモリに ロードしてから表示させる為、大量データ処理ができません。 このタグでは、直接ファイルを読み取りながらデータベース登録するので 大量データをバッチ的に登録する場合に使用します。 読み取るファイルは、先頭(または実データが現れるまでに) #NAME 行が必要です。 これは、ファイルデータのカラム名を指定しています。また、columns 属性を使用すれば、 ファイルの#NAME 行より優先して(つまり存在していなくても良い)データのカラム名を 指定することが出来ます。 この#NAME 行は、ファイルのセパレータと無関係に必ずタブ区切りで用意されています。 タグのBODY部に、実行するSQL文を記述します。 このSQL文は、 INSERT INTO GE41 (CLM,NAME_JA,SYSTEM_ID,FGJ,DYSET) VALUES ([CLM],[NAME_JA],[SYSTEM_ID],'1','{@USER.YMDH}') と、いう感じで、ファイルから読み込んだ値は、[カラム名]に割り当てられます。 もちろん、通常の固定値(FGJに'1'をセット)や、リクエスト変数(DYSETの{@USER.YMDH}) なども使用できます。 ※ このタグは、Transaction タグの対象です。

関連項目:
  直列化された形式
形式サンプル:

       ●形式：<og:directTableInsert filename="[･･･]" ･･･ >INSERT INTO ･･･ </og:directTableInsert >
       ●body：あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します)

       ●Tag定義：
         <og:directTableInsert
             fileURL            【TAG】読み取り元ディレクトリ名を指定します (初期値:FILE_URL[=filetemp/])
             filename           【TAG】ファイルを作成するときのファイル名をセットします (初期値:FILE_FILENAME[=file.xls])
             encode             【TAG】ファイルを作成するときのファイルエンコーディング名をセットします (初期値:FILE_ENCODE[=UnicodeLittle])
             separator          【TAG】可変長ファイルを作成するときの項目区切り文字をセットします(初期値:タブ)
             displayMsg         【TAG】query の結果を画面上に表示するメッセージIDを指定します(初期値:MSG0040[　件登録しました])
             columns            【TAG】#NAME 属性の代わりとなるファイルのカラム名を CSV形式で指定します
             commitBatch        【TAG】指定数毎にコミットを発行します(初期値:0 終了までコミットしません)
             useColumnAdjust    【TAG】カラム変換(DBType変換)を行うかどうかを設定します(初期値:false)
             useColumnCheck     【TAG】カラムチェック(DBTypeチェック)を行うかどうかを設定します(初期値:false)
             nullCheck          【TAG】NULL チェックすべきカラム列をカンマ区切り(CSV形式)で指定します
             dbid               【TAG】(通常は使いません)検索時のDB接続IDを指定します(初期値:DEFAULT)
             skipRowCount       【TAG】データの読み飛ばし件数を設定します(初期値:0)
             debug              【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
         >   ... Body ...
         </og:directTableInsert>

       ●使用例
           <og:directTableInsert
               dbid         = "ORCL"                接続データベースID(初期値:DEFAULT)
               separator    = ","                   ファイルの区切り文字(初期値:タブ)
               fileURL      = "{@USER.ID}"     読み取り元ディレクトリ名
               filename     = "{@filename}"    読み取り元ファイル名
               encode       = "Shift_JIS"           読み取り元ファイルエンコード名
               displayMsg   = "MSG0040"             登録完了後のメッセージ
               columns      = "CLM,NAME_JA,LABEL_NAME,KBSAKU,SYSTEM_ID,LANG"
                                                    #NAME の代わりに使用するカラム列名
               commitBatch  = "100"                 この件数ずつコミットを発行(初期値:無制限)
               useColumnCheck  = "true"             カラムチェックを行うかどうか(初期値:false)
               useColumnAdjust = "true"             カラム変換を行うかどうか(初期値:false)
               nullCheck       = "CLM,SYSTEM_ID"    NULLチェックを実行します。
           >
                INSERT INTO GE41
                    (CLM,NAME_JA,LABEL_NAME,KBSAKU,SYSTEM_ID,LANG,
                       FGJ,DYSET,DYUPD,USRSET,USRUPD,PGUPD)
                VALUES
                    ([CLM],[NAME_JA],[LABEL_NAME],[KBSAKU],[SYSTEM_ID],[LANG],
                      '1','{@USER.YMDH}','{@USER.YMDH}','{@USER.ID}','{@USER.ID}','{@GUI.KEY}')
           </og:directTableInsert >

機能分類
  ファイル入力
バージョン
  4.0
作成者
  Kazuhiko Hasegawa
導入されたバージョン:
  JDK5.0,

入れ子のクラスの概要
`(package private) static class` | `DirectTableInsertTag.CheckColumnData` カラム変換、カラムチェックを行う内部クラス

フィールドの概要

クラス 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`

コンストラクタの概要
`DirectTableInsertTag()`

メソッドの概要
`int` | `doAfterBody()` Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
`int` | `doEndTag()` Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
`int` | `doStartTag()` Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
`protected void` | `release2()` タグリブオブジェクトをリリースします。
`void` | `setColumns(java.lang.String clms)` 【TAG】#NAME 属性の代わりとなるファイルのカラム名を CSV形式で指定します。
`void` | `setCommitBatch(java.lang.String cmtBat)` 【TAG】指定数毎にコミットを発行します(初期値:0 終了までコミットしません)。
`void` | `setDbid(java.lang.String id)` 【TAG】(通常は使いません)検索時のDB接続IDを指定します(初期値:DEFAULT)。
`void` | `setDisplayMsg(java.lang.String id)` 【TAG】query の結果を画面上に表示するメッセージIDを指定します(初期値:MSG0040[　件登録しました])。
`void` | `setEncode(java.lang.String enc)` 【TAG】ファイルを作成するときのファイルエンコーディング名をセットします (初期値:FILE_ENCODE[=UnicodeLittle])。
`void` | `setFilename(java.lang.String filename)` 【TAG】ファイルを作成するときのファイル名をセットします (初期値:FILE_FILENAME[=file.xls])。
`void` | `setFileURL(java.lang.String url)` 【TAG】読み取り元ディレクトリ名を指定します (初期値:FILE_URL[=filetemp/])。
`void` | `setNullCheck(java.lang.String clms)` 【TAG】NULL チェックすべきカラム列をカンマ区切り(CSV形式)で指定します。
`void` | `setSeparator(java.lang.String separator)` 【TAG】可変長ファイルを作成するときの項目区切り文字をセットします(初期値:タブ)。
`void` | `setSkipRowCount(java.lang.String count)` 【TAG】取り込み時に除外する行を指定します(初期値:0)。
`void` | `setUseColumnAdjust(java.lang.String flag)` 【TAG】カラム変換(DBType変換)を行うかどうかを設定します(初期値:false)。
`void` | `setUseColumnCheck(java.lang.String flag)` 【TAG】カラムチェック(DBTypeチェック)を行うかどうかを設定します(初期値:false)。
`java.lang.String` | `toString()` このオブジェクトの文字列表現を返します。

クラス org.opengion.hayabusa.taglib.CommonTagSupport から継承されたメソッド
`add, add, addEventColumn, addEventColumn, check, check, commitTableObject, debugPrint, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getUser, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, 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`

コンストラクタの詳細

### DirectTableInsertTag

    public DirectTableInsertTag()

メソッドの詳細

### doStartTag

    public int doStartTag()

  Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。

  定義:
    インタフェース `javax.servlet.jsp.tagext.Tag` 内の `doStartTag`
  オーバーライド:
    クラス `CommonTagSupport` 内の `doStartTag`
  戻り値:
    後続処理の指示( EVAL_BODY_BUFFERED )

### doAfterBody

    public int doAfterBody()

  Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。

  定義:
    インタフェース `javax.servlet.jsp.tagext.IterationTag` 内の `doAfterBody`
  オーバーライド:
    クラス `CommonTagSupport` 内の `doAfterBody`
  戻り値:
    後続処理の指示(SKIP_BODY)
  変更履歴:

    3.6.0.2 (2004/10/04) SQL文の [カラム] 対応とパーサー機能追加
    3.8.6.3 (2006/11/30) SQL 文の前後のスペースを取り除きます。

### doEndTag

    public int doEndTag()

  Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。

  定義:
    インタフェース `javax.servlet.jsp.tagext.Tag` 内の `doEndTag`
  オーバーライド:
    クラス `CommonTagSupport` 内の `doEndTag`
  戻り値:
    後続処理の指示
  変更履歴:

    4.0.0.0 (2007/10/18) メッセージリソース統合( getResource().getMessage ⇒ getResource().getLabel )
    5.7.0.3 (2013/11/22) BufferedReaderのcloseをcreate内で行うように変更

### release2

    protected void release2()

  タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。

  オーバーライド:
    クラス `CommonTagSupport` 内の `release2`
  変更履歴:

    3.6.0.2 (2004/10/04) useColumnCheck,useColumnAdjust 属性追加
    3.8.0.2 (2005/06/30) nullCheck 属性追加
    4.0.0.0 (2007/10/10) dbid の初期値を、"DEFAULT" から null に変更
    5.5.7.1 (2012/10/05) skipRowCount追加

### setDbid

    public void setDbid(java.lang.String id)

  【TAG】(通常は使いません)検索時のDB接続IDを指定します(初期値:DEFAULT)。

  パラメータ:
    `id` - データベース接続ID
  説明:

         検索時のDB接続IDを指定します。初期値は、DEFAULT です。

### setSeparator

    public void setSeparator(java.lang.String separator)

  【TAG】可変長ファイルを作成するときの項目区切り文字をセットします(初期値:タブ)。

  パラメータ:
    `separator` - 項目区切り文字
  説明:

         可変長ファイルを作成するときの項目区切り文字をセットします。

### setFileURL

    public void setFileURL(java.lang.String url)

  【TAG】読み取り元ディレクトリ名を指定します (初期値:FILE_URL[=filetemp/])。

  パラメータ:
    `url` - ファイルURL
  関連項目:
    `SystemData.FILE_URL`
  説明:

         この属性で指定されるディレクトリより、ファイルを読み取ります。
         指定方法は、通常の fileURL 属性と同様に、先頭が、'/' (UNIX) または、２文字目が、
         ":" (Windows)の場合は、指定のURLそのままのディレクトリに、そうでない場合は、
         fileURL = "{@USER.ID}" と指定すると、FILE_URL 属性で指定のフォルダの下に、
         さらに、各個人ID別のフォルダの下より、読み取ります。
         (初期値:システム定数のFILE_URL[={@og.value org.opengion.hayabusa.common.SystemData#FILE_URL}])。

  変更履歴:

    4.0.0.0 (2005/01/31) StringUtil.urlAppend メソッドの利用
    4.0.0.0 (2007/11/20) 指定されたディレクトリ名の最後が"\"or"/"で終わっていない場合に、"/"を付加する。

### setFilename

    public void setFilename(java.lang.String filename)

  【TAG】ファイルを作成するときのファイル名をセットします (初期値:FILE_FILENAME[=file.xls])。

  パラメータ:
    `filename` - ファイル名
  関連項目:
    `SystemData.FILE_FILENAME`
  説明:

         ファイルを作成するときのファイル名をセットします。
         (初期値:システム定数のFILE_FILENAME[={@og.value org.opengion.hayabusa.common.SystemData#FILE_FILENAME}])。

### setEncode

    public void setEncode(java.lang.String enc)

  【TAG】ファイルを作成するときのファイルエンコーディング名をセットします (初期値:FILE_ENCODE[=UnicodeLittle])。

  パラメータ:
    `enc` - ファイルエンコーディング名
  関連項目:
    IANA Charset Registry, `SystemData.FILE_ENCODE`
  説明:

         初期値は、システムパラメータ の FILE_ENCODE 属性で、設定しています。
         Shift_JIS,MS932,Windows-31J,UTF-8,ISO-8859-1,UnicodeLittle･･･
         (初期値:システム定数のFILE_ENCODE[={@og.value org.opengion.hayabusa.common.SystemData#FILE_ENCODE}])。

### setDisplayMsg

    public void setDisplayMsg(java.lang.String id)

  【TAG】query の結果を画面上に表示するメッセージIDを指定します(初期値:MSG0040[　件登録しました])。

  パラメータ:
    `id` - ディスプレイに表示させるメッセージ ID
  説明:

         ここでは、検索結果の件数や登録された件数をまず出力し、
         その次に、ここで指定したメッセージをリソースから取得して
         表示します。
         表示させたくない場合は, displayMsg = "" をセットしてください。
         初期値は、検索件数を表示します。
         ※ この属性には、リクエスト変数({@XXXX})は使用できません。

### setColumns

    public void setColumns(java.lang.String clms)

  【TAG】#NAME 属性の代わりとなるファイルのカラム名を CSV形式で指定します。

  パラメータ:
    `clms` - ファイルのカラム名(カンマ区切り文字)
  説明:

         データファイルの先頭行に、#NAME 行があり、読み取るべきファイルの
         カラム名が記述されています。通常は、このカラム名を取り込んで、
         各データ列のカラムを指定します。
         この属性は、ファイルに#NAME 行が存在しない(他システムからの入力ファイル等)
         場合に、#NAME 属性の代わりに、カラム名を外部より指定します。

  変更履歴:

    3.8.5.1 (2006/05/08) getCSVParameter の使用を中止

### setCommitBatch

    public void setCommitBatch(java.lang.String cmtBat)

  【TAG】指定数毎にコミットを発行します(初期値:0 終了までコミットしません)。

  パラメータ:
    `cmtBat` - 指定数毎にコミットを発行(初期値:0)
  説明:

         通常は、全ての処理が正常に終了するか、なにもしないか(トランザクション)
         を判断すべきで、途中でのコミットはしません。
         しかし、場合によって、件数が異常に多い場合や、再実行可能な場合は、
         途中でコミットして、都度、処理できるものだけを処理してしまうという方法があります。
         また、ロールバックエリアの関係などで、データ量が多い場合に、処理時間が異常に
         長くなる事があり、指定件数ごとのコミット機能を用意しています。
         0 に設定すると、終了までコミットしません。初期値は、0 です。

### setUseColumnCheck

    public void setUseColumnCheck(java.lang.String flag)

  【TAG】カラムチェック(DBTypeチェック)を行うかどうかを設定します(初期値:false)。

  パラメータ:
    `flag` - チェックを行うかどうか(true:行う/false:行わない)
  関連項目:
    `setUseColumnAdjust( String )`
  説明:

         カラムの整合性チェックを行う場合、この属性を設定(true)します。
         初期値は、行わない(false)です。
         チェックするカラムは、#NAME や columns で指定されたカラムではなく、
         BODY部のSQL文で指定されたカラム名( [カラム名] )です。これは、直接、SQL文中に
         記述している値や、{@XXXX}文字等は、チェック出来ない為です。

  変更履歴:

    3.6.0.2 (2004/10/04) 新規追加 取り込み時全チェック

### setUseColumnAdjust

    public void setUseColumnAdjust(java.lang.String flag)

  【TAG】カラム変換(DBType変換)を行うかどうかを設定します(初期値:false)。

  パラメータ:
    `flag` - 変換を行うかどうか(true:行う/false:行わない)
  関連項目:
    `setUseColumnCheck( String )`
  説明:

         カラムの変換を行う場合、この属性を設定(true)します。
         初期値は、行わない(false)です。
         変換するカラムは、#NAME や columns で指定されたカラムではなく、
         BODY部のSQL文で指定されたカラム名[カラム名]です。これは、直接、SQL文中に
         記述している値や、{@XXXX}文字等は、変換出来ない為です。

  変更履歴:

    3.6.0.2 (2004/10/04) 新規追加 取り込み時変換

### setNullCheck

    public void setNullCheck(java.lang.String clms)

  【TAG】NULL チェックすべきカラム列をカンマ区切り(CSV形式)で指定します。

  パラメータ:
    `clms` - カラム列(CSV形式)
  説明:

         nullCheck="AAA,BBB,CCC,DDD"
         分解方法は、通常のパラメータ取得後に、CSV分解します。

  変更履歴:

    3.8.0.2 (2005/06/30) 新規追加
    3.8.8.5 (2007/03/09) 通常のパラメータ取得後に、CSV分解に戻します。

### setSkipRowCount

    public void setSkipRowCount(java.lang.String count)

  【TAG】取り込み時に除外する行を指定します(初期値:0)。

  パラメータ:
    `count` - 先頭行を無視するかどうか(true:無視する/false:無視しない)
  説明:

         TAB区切りテキストやEXCEL等のデータの読み始めの初期値を指定します。
         ファイルの先頭行が、０行としてカウントしますので、設定値は、読み飛ばす
         件数になります。(１と指定すると、１件読み飛ばし、２行目から読み込みます。)
         読み飛ばしは、コメント行などは、無視しますので、実際の行数分読み飛ばします。
         ＃NAME属性や、columns 属性は、有効です。

  変更履歴:

    5.5.7.1 (2012/10/05) 新規追加

### toString

    public java.lang.String toString()

  このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。

  オーバーライド:
    クラス `CommonTagSupport` 内の `toString`
  戻り値:
    このクラスの文字列表現

概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
| openGion 5.7.4.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

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