org.opengion.hayabusa.common

## クラス InitFileLoader

- java.lang.Object
- - org.opengion.hayabusa.common.InitFileLoader

-     public final class InitFileLoader
      extends Object

  ORACLE XDK 形式のXMLファイルを読み取って、データベースに登録します。 起動(実行)は、コンテキスト読み取り時の初回のみです。GE12パラメータを変更した 場合は、コンテキストのリロードが必要です。 登録の実行有無の判断は、ファイルの更新時刻より判断します。(useTimeStamp=true の場合) これは、読み取りファイルの更新時刻が、０でない場合、読み取りを行います。 読み取りが完了した場合は、更新時刻を ０ に設定します。 読み取るファイルは、クラスローダーのリソースとして取得されますので、クラスパスが 設定されている必要があります。また、ファイルは、拡張子が 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) 新規作成

  機能分類
    初期化
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### コンストラクタの概要

    コンストラクタ
    コンストラクタと説明
    `InitFileLoader(Connection conn)` コネクションを引数にする、コンストラクターです。
    `InitFileLoader(Connection conn, 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(Connection conn)

      コネクションを引数にする、コンストラクターです。 classPath="resource" で初期化された InitFileLoader を作成します。
      パラメータ:
        `conn` - 登録用コネクション

    - #### InitFileLoader

          public InitFileLoader(Connection conn,
                        String classPath)

      コネクションと検索パスを指定して構築する、コンストラクターです。 対象ファイルは、classPath で指定された場所を、クラスローダーで検索します。 ここで見つかったパス以下の XMLファイル(拡張子は小文字で、.xml )を検索 します。このファイル名は テーブル名.xml 形式で格納しておきます。
      パラメータ:
        `conn` - 登録用コネクション
        `classPath` - 対象となるファイル群を検索する、クラスパス

  - ### メソッドの詳細

    - #### setFileCommit

          public void setFileCommit(boolean fileCmt)

      ファイル毎にコミット処理を行うかどうか指定します(初期値:false[行わない])。 対象ファイル毎に、データベースへの登録を完了(commit)するかどうかを指定します。 通常、Connection は、autoCommit を false に設定し、１件ごとの処理は行いません。 さらに、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 します。
        5.6.6.1 (2013/07/12) jarファイルの場合も、タイムスタンプ管理の対象とします。

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.