|
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjavax.servlet.jsp.tagext.TagSupport
javax.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.DirectTableInsertTag
public class DirectTableInsertTag
指定のファイルを直接データベースに登録するデータ入力タグです。 通常の 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:あり ●使用例 <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チェックを実行します。 > <jsp:text> 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}') </jsp:text> </og:directTableInsert >
入れ子のクラスの概要 | |
---|---|
(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)。 |
void |
setFilename(java.lang.String filename)
【TAG】ファイルを作成するときのファイル名をセットします(初期値:システムパラメータのFILE_FILENAME)。 |
void |
setFileURL(java.lang.String url)
【TAG】読み取り元ディレクトリ名を指定します(初期値:システムパラメータのFILE_URL)。 |
void |
setNullCheck(java.lang.String clms)
【TAG】NULL チェックすべきカラム列をカンマ区切りで指定します。 |
void |
setSeparator(java.lang.String separator)
【TAG】可変長ファイルを作成するときの項目区切り文字をセットします(初期値:タブ)。 |
void |
setUseColumnAdjust(java.lang.String flag)
【TAG】カラム変換(DBType変換)を行うかどうかを設定します(初期値:false) |
void |
setUseColumnCheck(java.lang.String flag)
【TAG】カラムチェック(DBTypeチェック)を行うかどうかを設定します(初期値:false) |
java.lang.String |
toString()
このオブジェクトの文字列表現を返します。 |
クラス 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 |
コンストラクタの詳細 |
---|
public DirectTableInsertTag()
メソッドの詳細 |
---|
public int doStartTag()
javax.servlet.jsp.tagext.Tag
内の doStartTag
CommonTagSupport
内の doStartTag
public int doAfterBody()
javax.servlet.jsp.tagext.IterationTag
内の doAfterBody
CommonTagSupport
内の doAfterBody
3.6.0.2 (2004/10/04) SQL文の [カラム] 対応とパーサー機能追加 |
3.8.6.3 (2006/11/30) SQL 文の前後のスペースを取り除きます。 |
public int doEndTag()
javax.servlet.jsp.tagext.Tag
内の doEndTag
CommonTagSupport
内の doEndTag
4.0.0.0 (2007/10/18) メッセージリソース統合( getResource().getMessage > getResource().getLabel ) |
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 に変更 |
public void setDbid(java.lang.String id)
id
- データベース接続ID検索時のDB接続IDを指定します。初期値は、DEFAULT です。
public void setSeparator(java.lang.String separator)
separator
- 項目区切り文字可変長ファイルを作成するときの項目区切り文字をセットします。
public void setFileURL(java.lang.String url)
url
- ファイルURLこの属性で指定されるディレクトリより、ファイルを読み取ります。 指定方法は、通常の fileURL 属性と同様に、先頭が、'/' (UNIX) または、2文字目が、 ":" (Windows)の場合は、指定のURLそのままのディレクトリに、そうでない場合は、 システムパラメータ の FILE_URL 属性で指定のフォルダの下に、作成されます。 fileURL = "{@USER.ID}" と指定すると、FILE_URL 属性で指定のフォルダの下に、 さらに、各個人ID別のフォルダの下より、読み取ります。
4.0.0 (2005/01/31) StringUtil.urlAppend メソッドの利用 |
4.0.0.0 (2007/11/20) 指定されたディレクトリ名の最後が"\"or"/"で終わっていない場合に、"/"を付加する。 |
public void setFilename(java.lang.String filename)
filename
- ファイル名ファイルを作成するときのファイル名をセットします。 初期値は、システムパラメータ の FILE_FILENAME 属性で指定のファイル名です。
public void setEncode(java.lang.String enc)
enc
- ファイルエンコーディング名初期値は、システムパラメータ の FILE_ENCODE 属性で、設定しています。 Shift_JIS,MS932,Windows-31J,UTF-8,ISO-8859-1,UnicodeLittle・・・
public void setDisplayMsg(java.lang.String id)
id
- ディスプレイに表示させるメッセージ IDここでは、検索結果の件数や登録された件数をまず出力し、 その次に、ここで指定したメッセージをリソースから取得して 表示します。 表示させたくない場合は, displayMsg = "" をセットしてください。 初期値は、検索件数を表示します。 ※ この属性には、リクエスト変数({@XXXX})は使用できません。
public void setColumns(java.lang.String clms)
clms
- ファイルのカラム名(カンマ区切り文字)データファイルの先頭行に、#NAME 行があり、読み取るべきファイルの カラム名が記述されています。通常は、このカラム名を取り込んで、 各データ列のカラムを指定します。 この属性は、ファイルに#NAME 行が存在しない(他システムからの入力ファイル等) 場合に、#NAME 属性の代わりに、カラム名を外部より指定します。
3.8.5.1 (2006/05/08) getCSVParameter の使用を中止 |
public void setCommitBatch(java.lang.String cmtBat)
cmtBat
- 指定数毎にコミットを発行(初期値:0)通常は、全ての処理が正常に終了するか、なにもしないか(トランザクション) を判断すべきで、途中でのコミットはしません。 しかし、場合によって、件数が異常に多い場合や、再実行可能な場合は、 途中でコミットして、都度、処理できるものだけを処理してしまうという方法があります。 また、ロールバックエリアの関係などで、データ量が多い場合に、処理時間が異常に 長くなる事があり、指定件数ごとのコミット機能を用意しています。 0 に設定すると、終了までコミットしません。初期値は、0 です。
public void setUseColumnCheck(java.lang.String flag)
flag
- チェックを行うかどうか(true:行う/false:行わない)setUseColumnAdjust( String )
カラムの整合性チェックを行う場合、この属性を設定(true)します。 初期値は、行わない(false)です。 チェックするカラムは、#NAME や columns で指定されたカラムではなく、 BODY部のSQL文で指定されたカラム名( [カラム名] )です。これは、直接、SQL文中に 記述している値や、{@XXXX}文字等は、チェック出来ない為です。
3.6.0.2 (2004/10/04) 新規追加 取り込み時全チェック |
public void setUseColumnAdjust(java.lang.String flag)
flag
- 変換を行うかどうか(true:行う/false:行わない)setUseColumnCheck( String )
カラムの変換を行う場合、この属性を設定(true)します。 初期値は、行わない(false)です。 変換するカラムは、#NAME や columns で指定されたカラムではなく、 BODY部のSQL文で指定されたカラム名[カラム名]です。これは、直接、SQL文中に 記述している値や、{@XXXX}文字等は、変換出来ない為です。
3.6.0.2 (2004/10/04) 新規追加 取り込み時変換 |
public void setNullCheck(java.lang.String clms)
clms
- StringnullCheck="AAA,BBB,CCC,DDD"先に配列に分解してからリクエスト変数の値を取得するようにします。 こうする事で、リクエストにカンマ区切りの値を設定できるようになります。分解方法は、通常のパラメータ取得後に、CSV分解します。
3.8.0.2 (2005/06/30) 新規追加 |
3.8.8.5 (2007/03/09) 通常のパラメータ取得後に、CSV分解に戻します。 |
public java.lang.String toString()
CommonTagSupport
内の toString
|
openGion 5.4.2.1 | ||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |