設定

SQLテンプレートを処理する環境設定の変更について説明します。

SQLテンプレートファイルの文字コード設定

リソースからSQLテンプレートを読み込む場合の文字コードを変更可能です。

デフォルト値は、UTF-8 です。

SqlTemplateEngine templateEngine = new SqlTemplateEngine();
templateEngine.setEncoding("MS932");

環境によってSQLファイルを切り替える

接続するDBの種類によって、読み込むリソースファイルを切り替えることができます。

一致する接尾語のファイルがない場合は、接尾語なしのファイルが読み込まれます。

<classpath_root>
   └─ sql
       ├─ employee_select.sql
       ├─ employee_select-h2.sql      ・・・接尾語付きのSQL(H2用)
       └─ employee_select-oracle.sql  ・・・接尾語付きのSQL(Oracle用)
SqlTemplateEngine templateEngine = new SqlTemplateEngine();

// リソース名の接尾語の指定
templateEngine.setSuffixName("oracle");

// テンプレートの取得
// 「sql/employee_select-oracle.sql」というファイルが読み込まれる。
SqlTemplate template = templateEngine.getTemplate("/sql/employee_select.sql");

SQLテンプレートのキャッシュ設定

SQLテンプレートのパースは処理が重いため、何度も呼び出す場合はコストがかかります。

その場合、キャッシュ設定を有効にすることでパース下SQLテンプレートのインスタンスをキャッシュすることができます。

SqlTemplateEngine templateEngine = new SqlTemplateEngine();

// キャッシュの有効化
templateEngine.setCached(true);

注意

注意事項として、キャッシュを有効にしている状態で、途中で SqlTemplateEngine#setSuffixName(...) にて接尾語を変更した場合、切り替える前のSQLテンプレートが返されるため注意してください。

リソースローダの変更

SQLテンプレートを読み込む際のリソースローダーを切り替えることができます。

デフォルト値は、DefaultResourceLoader です。

SqlTemplateEngine templateEngine = new SqlTemplateEngine();

// リロースローダの設定
templateEngine.setResourceLoader(...);