Class BasicSqlLoader

java.lang.Object
nablarch.core.db.statement.BasicSqlLoader
All Implemented Interfaces:
StaticDataLoader<Map<String,String>>

public class BasicSqlLoader extends Object implements StaticDataLoader<Map<String,String>>
SQL文をクラスパス上のリソース(SQLファイル)からロードするクラス。

本クラスでは、下記ルールに従いSQL文をロードする。

a) SQL_IDとSQL文の1グループは、空行で区切られて記述されている。

1つのSQL文の中に空行はいれてはならない。 また、異なるSQL文との間には必ず空行を入れなくてはならない。 コメント行は、空行とはならない。

b) 1つのSQL文の最初の「=」までがSQL_IDとなる。

SQL_IDとは、SQLファイル内でSQL文を一意に特定するためのIDである。 SQL_IDには、任意の値を設定することが可能となっている。

c) コメントは、「--」で開始されている必要がある。

「--」以降の値は、コメントとして扱い読み込まない。
※コメントは、行コメントとして扱う。複数行に跨るブロックコメントはサポートしない。

d) SQL文の途中で改行を行っても良い。また、可読性を考慮してスペースやtabなどで桁揃えを行っても良い。

  • Constructor Details

    • BasicSqlLoader

      public BasicSqlLoader()
  • Method Details

    • setSqlLoaderCallback

      public void setSqlLoaderCallback(List<SqlLoaderCallback> sqlLoaderCallbackList)
      コールバッククラスを設定する。 コールバッククラスはリストの順序で実行される。
      Parameters:
      sqlLoaderCallbackList - SQLプリプロセッサのリスト
    • setFileEncoding

      public void setFileEncoding(String fileEncoding)
      ファイルエンコーディングを設定する。

      ここで設定されたエンコーディングを使用してSQLファイルを読み込む。 本設定を行わない場合は、JVMのデフォルトエンコーディングを使用してSQLファイルが読み込まれる。

      Parameters:
      fileEncoding - ファイルエンコーディング
    • setExtension

      public void setExtension(String extension)
      拡張子を設定する。
      ここで設定された拡張子を付加したファイルをSQLファイルとして読み込む。 指定がない場合は、デフォルトで拡張子はsqlとなる。
      Parameters:
      extension - 拡張子
    • getValue

      public Map<String,String> getValue(Object id)
      SQL文をロードする。
      Specified by:
      getValue in interface StaticDataLoader<Map<String,String>>
      Parameters:
      id - データのID(SQL文が書かれたファイルのリソース名)
      Returns:
      ロードしたSQL文
      KEY->SQL_ID
      VALUE->SQL文
    • getValues

      public List<Map<String,String>> getValues(String indexName, Object key)
      インデックスに紐付くデータをロードする。
      本メソッドは、サポートしない。
      Specified by:
      getValues in interface StaticDataLoader<Map<String,String>>
      Parameters:
      indexName - インデックス名
      key - 静的データのキー
      Returns:
      インデックス名、キーに対応するデータのリスト
    • loadAll

      public List<Map<String,String>> loadAll()
      全てのデータをロードする。
      本メソッドはサポートしない。
      Specified by:
      loadAll in interface StaticDataLoader<Map<String,String>>
      Returns:
      全てのデータ
    • getIndexNames

      public List<String> getIndexNames()
      全てのインデックス名を取得する。
      本メソッドはサポートしない。
      Specified by:
      getIndexNames in interface StaticDataLoader<Map<String,String>>
      Returns:
      全てのインデックス名
    • getId

      public Object getId(Map<String,String> value)
      静的データからIDを取得する。
      本メソッドはサポートしない。
      Specified by:
      getId in interface StaticDataLoader<Map<String,String>>
      Parameters:
      value - 静的データ
      Returns:
      生成したID
    • generateIndexKey

      public Object generateIndexKey(String indexName, Map<String,String> value)
      静的データからインデックスのキーを生成する。
      本メソッドはサポートしない。
      Specified by:
      generateIndexKey in interface StaticDataLoader<Map<String,String>>
      Parameters:
      indexName - インデックス名
      value - 静的データ
      Returns:
      生成したインデックスのキー