概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
openGion 5.6.0.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：あり

       ●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, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsglbl, 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, 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 )

### 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 (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.6.0.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

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