パッケージ org.opengion.fukurou.xml

クラス XMLFileLoader

java.lang.Object
org.opengion.fukurou.xml.XMLFileLoader

public final class XMLFileLoader extends Object
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,
  • フィールドの概要

    フィールド
    修飾子とタイプ
    フィールド
    説明
    static final int
    getCRUDCount() で返される カウント数の配列番号 3
    static final int
    getCRUDCount() で返される カウント数の配列番号 1
    static final int
    getCRUDCount() で返される カウント数の配列番号 0
    static final int
    getCRUDCount() で返される カウント数の配列番号 2
  • コンストラクタの概要

    コンストラクタ
    コンストラクタ
    説明
    XMLFileLoader(Connection conn, boolean useTimeStamp)
    コネクションを引数にする、コンストラクターです。
  • メソッドの概要

    修飾子とタイプ
    メソッド
    説明
    int[]
    XMLファイルを登録後の、追加,更新,削除,実行 のカウント配列を返します。
    void
    対象となるファイル群を ClassLoader の指定パスから、検索します。
    void
    loadXMLFiles(File fileObj)
    対象となるファイル群を ファイル単体、フォルダ階層以下、ZIPファイル から、検索します。
    void
    XMLファイルを読み取った後で指定するカラムと値のペア(マップ)情報をセットします。
    void
    ログ出力を行う 内部ログ(Writer) を指定します。

    クラスから継承されたメソッド java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

    • INS

      public static final int INS
      getCRUDCount() で返される カウント数の配列番号 0
      関連項目:
    • DEL

      public static final int DEL
      getCRUDCount() で返される カウント数の配列番号 1
      関連項目:
    • UPD

      public static final int UPD
      getCRUDCount() で返される カウント数の配列番号 2
      関連項目:
    • DDL

      public static final int DDL
      getCRUDCount() で返される カウント数の配列番号 3
      関連項目:
  • コンストラクタの詳細

    • XMLFileLoader

      public XMLFileLoader(Connection conn, boolean useTimeStamp)
      コネクションを引数にする、コンストラクターです。 classPath="resource" で初期化された XMLFileLoader を作成します。 useTimeStamp 属性を true に設定すると、このファイルを読み取る都度 タイムスタンプを、クリアします。 また、タイムスタンプがクリアされたファイルは読み込みませんので、機能的に 一度しか読み込まないという事になります。
      パラメータ:
      conn - 登録用コネクション
      useTimeStamp - タイムスタンプの管理を行うかどうか[true:行う/false:行わない]
  • メソッドの詳細

    • setLogWriter

      public void setLogWriter(Writer log)
      ログ出力を行う 内部ログ(Writer) を指定します。 内部ログ(Writer) の初期値は、null とします。 内部ログ(Writer)が null の場合は、なにもしません。
      パラメータ:
      log - Writerオブジェクト
      変更履歴:
      6.0.0.0 (2014/04/11) ログ関係を Writer で管理します。
    • setAfterMap

      public void setAfterMap(Map<String,String> map)
      XMLファイルを読み取った後で指定するカラムと値のペア(マップ)情報をセットします。 このカラムと値のペアのマップは、オブジェクト構築後に設定される為、 XMLファイルのキーの存在に関係なく、Mapのキーと値が使用されます。(Map優先) null を設定した場合は、なにも処理されません。
      パラメータ:
      map - 後設定するカラムデータマップ
      変更履歴:
      6.0.0.0 (2014/04/11) 新規追加
    • getCRUDCount

      public int[] getCRUDCount()
      XMLファイルを登録後の、追加,更新,削除,実行 のカウント配列を返します。 簡易的に処理したいために、配列に設定しています。 順番に、追加,更新,削除,実行 のカウント値になります。
      戻り値:
      追加,更新,削除,実行 のカウント配列
      変更履歴:
      6.0.0.0 (2014/04/11) 新規追加
      このメソッドは、nullを返しません
    • loadClassPathFiles

      public void loadClassPathFiles(String path)
      対象となるファイル群を ClassLoader の指定パスから、検索します。 対象ファイルは、指定フォルダに テーブル名.xml 形式で格納しておきます。 このフォルダのファイルをピックアップします。 useTimeStamp 属性を true に設定すると、このファイルを読み取る都度 タイムスタンプを、クリアします。 また、タイムスタンプがクリアされたファイルは読み込みませんので、機能的に 一度しか読み込まないという事になります。
      パラメータ:
      path - 対象となるファイル群を検索する、クラスパス
      変更履歴:
      6.0.0.0 (2014/04/11) 新規追加, 6.4.0.4 (2015/12/26) Writer(ログ)のCloseは、ここでは行わない。, 6.8.5.1 (2018/01/15) ファイル名は、##バージョン番号を変換しておく必要がある。
    • loadXMLFiles

      public void loadXMLFiles(File fileObj)
      対象となるファイル群を ファイル単体、フォルダ階層以下、ZIPファイル から、検索します。 対象ファイルは、テーブル名.xml 形式で格納しておきます。 この処理では、ファイル単体(*.xml)、フォルダ階層以下、ZIPファイル(*.jar , *.zip) は混在できません。 最初に判定した形式で、個々の処理に振り分けています。
      パラメータ:
      fileObj - 読取元のファイルオブジェクト
      関連項目:
      変更履歴:
      6.0.0.0 (2014/04/11) 新規追加, 6.4.0.4 (2015/12/26) Writer(ログ)のCloseは、ここでは行わない。