パッケージ 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
    対象となるファイル群を 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 - 対象となるファイル群を検索するクラスパス
      変更履歴:
      8.5.0.0 (2023/04/21) 対象外の resource を読込んでいた為、判定条件を変更
    • loadClassPathFiles リンク・アイコン

      public void loadClassPathFiles(String path, String keyword)
      対象となるファイル群を 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 リンク・アイコン

      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は、ここでは行わない。