org.opengion.hayabusa.common
クラス InitFileLoader
java.lang.Object
org.opengion.hayabusa.common.InitFileLoader
public final class InitFileLoader
- extends java.lang.Object
ORACLE XDK 形式のXMLファイルを読み取って、データベースに登録します。
起動(実行)は、コンテキスト読み取り時の初回のみです。GE12パラメータを変更した
場合は、コンテキストのリロードが必要です。
登録の実行有無の判断は、ファイルの更新時刻より判断します。(useTimeStamp=true の場合)
これは、読み取りファイルの更新時刻が、0でない場合、読み取りを行います。
読み取りが完了した場合は、更新時刻を 0 に設定します。
読み取るファイルは、クラスローダーのリソースとして取得されますので、クラスパスが
設定されている必要があります。また、ファイルは、拡張子が xml で、UTF-8でエンコード
されている必要があります。通常は、ファイル名がテーブル名と同一にしておく必要が
ありますが、ROWSETのtable属性にテーブル名をセットしておくことも可能です。
ファイルの登録順は、原則、クラスローダーの検索順に、見つかった全てのファイルを
登録します。データそのものは、INSERT のみ対応していますので、原則登録順は無視されます。
ただし、拡張XDK 形式で、EXEC_SQL タグを使用した場合は、登録順が影響する可能性があります。
例:GE12.xml GE12 テーブルに登録するXMLファイル
登録時に、既存のデータの破棄が必要な場合は、拡張XDK 形式のXMLファイルを
作成してください。これは、EXEC_SQL タグに書き込んだSQL文を実行します。
詳細は、HybsXMLHandler
クラスを参照してください。
<ROWSET tableName="XX" >
<EXEC_SQL> 最初に記載して、初期処理(データクリア等)を実行させる。
delete from GEXX where YYYYY
</EXEC_SQL>
<ROW num="1">
<カラム1>値1</カラム1>
・・・
<カラムn>値n</カラムn>
</ROW>
・・・
<ROW num="n">
・・・
</ROW>
<EXEC_SQL> 最後に記載して、項目の設定(整合性登録)を行う。
update GEXX set AA='XX' , BB='XX' where YYYYY
</EXEC_SQL>
<ROWSET>
- 変更履歴:
- 機能階層
- 初期化
- バージョン
- 4.0
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK5.0,
コンストラクタの概要 |
InitFileLoader(java.sql.Connection conn)
コネクションを引数にする、コンストラクターです。 |
InitFileLoader(java.sql.Connection conn,
java.lang.String classPath)
コネクションと検索パスを指定して構築する、コンストラクターです。 |
メソッドの概要 |
void |
loadInitFiles(boolean useTimeStamp)
対象となるファイル群を検索します。 |
void |
setFileCommit(boolean fileCmt)
ファイル毎にコミット処理を行うかどうか指定します(初期値:false[行わない])。 |
クラス java.lang.Object から継承されたメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
InitFileLoader
public InitFileLoader(java.sql.Connection conn)
- コネクションを引数にする、コンストラクターです。
classPath="resource" で初期化された InitFileLoader を作成します。
- パラメータ:
conn
- 登録用コネクション
InitFileLoader
public InitFileLoader(java.sql.Connection conn,
java.lang.String classPath)
- コネクションと検索パスを指定して構築する、コンストラクターです。
対象ファイルは、classPath で指定された場所を、クラスローダーで検索します。
ここで見つかったパス以下の XMLファイル(拡張子は小文字で、.xml )を検索
します。このファイル名は テーブル名.xml 形式で格納しておきます。
- パラメータ:
conn
- 登録用コネクションclassPath
- 対象となるファイル群を検索する、クラスパス
setFileCommit
public void setFileCommit(boolean fileCmt)
- ファイル毎にコミット処理を行うかどうか指定します(初期値:false[行わない])。
対象ファイル毎に、データベースへの登録を完了(commit)するかどうかを指定します。
通常、Connection は、autoCommit を false に設定し、1件ごとの処理は行いません。
さらに、XMLファイルにも相互関連がある場合があるため、複数ファイルを取り込む場合は、
それらを一群として処理したいケースもあります。また、各ファイルが独立している
場合は、他のファイル取り込み時にエラーが発生しても、それまでの分は、取り込みたい
ケースがあります。
ここでは、ファイル毎にコミットを発行するかどうかを指定できます。
初期値は、false[行わない]です。
※ true に設定した場合でも、途中でエラーが発生した場合は、それ以降の処理は、
継続しません。それ以前の処理が、登録されているだけです。
- パラメータ:
fileCmt
- ファイル毎にコミット処理を行うかどうか [true:行う/false:行わない]
loadInitFiles
public void loadInitFiles(boolean useTimeStamp)
- 対象となるファイル群を検索します。
対象ファイルは、resource フォルダに テーブル名.xml 形式で格納しておきます。
このフォルダのファイルをピックアップします。
useTimeStamp 属性を true に設定すると、このファイルのタイムスタンプを、
システムパラメータ定義(GE12) にセットします。それ以降、このタイムスタンプと
ファイルを比較して、変更がなければ、登録処理を行いません。
- パラメータ:
useTimeStamp
- タイムスタンプの管理を行うかどうか[true:行う/false:行わない]- 変更履歴:
4.0.0.0 (2007/11/28) メソッドの戻り値をチェックします。 |
5.3.6.0 (2011/06/01) 実フォルダの場合、フォルダ階層を下る処理を追加 |
5.5.2.6 (2012/05/25) JarFile を、Closer#zipClose( ZipFile ) メソッドを利用して、close します。 |
Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.