パッケージ org.opengion.fukurou.xml
クラス XMLFileLoader
java.lang.Object
org.opengion.fukurou.xml.XMLFileLoader
ORACLE XDK 形式のXMLファイルを読み取って、データベースに登録します。
これは、Ver5の時は、org.opengion.hayabusa.common.InitFileLoader として
使用されていたクラスを改造したものです。
InitFileLoader は、Ver6 では廃止されていますので、ご注意ください。
登録の実行有無の判断は、ファイルの更新時刻より判断します。(useTimeStamp=true の場合)
これは、読み取りファイルの更新時刻が、0でない場合、読み取りを行います。
読み取りが完了した場合は、更新時刻を 0 に設定します。
読み取るファイルは、クラスローダーのリソースや、指定のフォルダ以下のファイル、そして、
zip 圧縮されたファイルの中から、拡張子が 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.0.0 (2004/12/31) 新規作成(org.opengion.hayabusa.common.InitFileLoader), 6.0.0.0 (2014/04/11) パッケージ、クラスファイル変更
- 導入されたバージョン:
- JDK7.0,
-
フィールドの概要
フィールド -
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明int[]
XMLファイルを登録後の 追加,更新,削除,実行 のカウント配列を返します。void
loadClassPathFiles
(String path) 対象となるファイル群を ClassLoader の指定パスから、検索します。void
loadClassPathFiles
(String path, String keyword) 対象となるファイル群を ClassLoader の指定パスから、検索します。void
loadXMLFiles
(File fileObj) 対象となるファイル群を ファイル単体、フォルダ階層以下、ZIPファイル から、検索します。void
setAfterMap
(Map<String, String> map) XMLファイルを読み取った後で指定するカラムと値のペア(マップ)情報をセットします。void
setLogWriter
(Writer log) ログ出力を行う 内部ログ(Writer) を指定します。
-
フィールド詳細
-
コンストラクタの詳細
-
メソッドの詳細
-
setLogWriter
ログ出力を行う 内部ログ(Writer) を指定します。 内部ログ(Writer) の初期値は、null とします。 内部ログ(Writer)が null の場合は、なにもしません。- パラメータ:
log
- Writerオブジェクト- 変更履歴:
- 6.0.0.0 (2014/04/11) ログ関係を Writer で管理します。
-
setAfterMap
XMLファイルを読み取った後で指定するカラムと値のペア(マップ)情報をセットします。 このカラムと値のペアのマップは、オブジェクト構築後に設定される為、 XMLファイルのキーの存在に関係なく、Mapのキーと値が使用されます。(Map優先) null を設定した場合は、なにも処理されません。- パラメータ:
map
- 後設定するカラムデータマップ- 変更履歴:
- 6.0.0.0 (2014/04/11) 新規追加
-
getCRUDCount
XMLファイルを登録後の 追加,更新,削除,実行 のカウント配列を返します。 簡易的に処理したいために、配列に設定しています。 順番に、追加,更新,削除,実行 のカウント値になります。- 戻り値:
- 追加,更新,削除,実行 のカウント配列
- 変更履歴:
- 6.0.0.0 (2014/04/11) 新規追加
- このメソッドは、nullを返しません
-
loadClassPathFiles
対象となるファイル群を ClassLoader の指定パスから、検索します。 対象ファイルは、指定フォルダに テーブル名.xml 形式で格納しておきます。 このフォルダのファイルをピックアップします。 useTimeStamp 属性を true に設定すると、このファイルを読み取る都度 タイムスタンプを、クリアします。 また、タイムスタンプがクリアされたファイルは読み込みませんので、機能的に 一度しか読み込まないという事になります。- パラメータ:
path
- 対象となるファイル群を検索するクラスパス- 変更履歴:
- 8.5.0.0 (2023/04/21) 対象外の resource を読込んでいた為、判定条件を変更
-
loadClassPathFiles
対象となるファイル群を ClassLoader の指定パスから、検索します。 対象ファイルは、指定フォルダに テーブル名.xml 形式で格納しておきます。 このフォルダのファイルをピックアップします。 useTimeStamp 属性を true に設定すると、このファイルを読み取る都度 タイムスタンプを、クリアします。 また、タイムスタンプがクリアされたファイルは読み込みませんので、機能的に 一度しか読み込まないという事になります。- パラメータ:
path
- 対象となるファイル群を検索するクラスパスkeyword
- 検索対象ファイルのキーワード- 変更履歴:
- 6.0.0.0 (2014/04/11) 新規追加, 6.4.0.4 (2015/12/26) Writer(ログ)のCloseは、ここでは行わない。, 6.8.5.1 (2018/01/15) ファイル名は、##バージョン番号を変換しておく必要がある。, 8.5.0.0 (2023/04/21) 対象外の resource を読込んでいた為、判定条件を変更
-
loadXMLFiles
対象となるファイル群を ファイル単体、フォルダ階層以下、ZIPファイル から、検索します。 対象ファイルは、テーブル名.xml 形式で格納しておきます。 この処理では、ファイル単体(*.xml)、フォルダ階層以下、ZIPファイル(*.jar , *.zip) は混在できません。 最初に判定した形式で、個々の処理に振り分けています。- パラメータ:
fileObj
- 読取元のファイルオブジェクト- 関連項目:
- 変更履歴:
- 6.0.0.0 (2014/04/11) 新規追加, 6.4.0.4 (2015/12/26) Writer(ログ)のCloseは、ここでは行わない。
-