SqlResourceManager
SqlResourceManagerはSQLファイルを管理するクラスです。
クラス名の変更
uroborosql v1.x で SqlManager から SqlResourceManagerにクラス名が変更されました。
SqlResourceManagerの具象クラスとしてSqlResourceManagerImplクラスが提供されています。
| クラス | 説明 |
|---|---|
| SqlResourceManagerImpl | java.nioを利用したファイルアクセスを行うSqlResourceManagerクラス |
SqlResourceManagerImplクラスの特徴
- SQLファイルルートフォルダ設定
- SQLファイルエンコーディング設定
- 起動時のファイルパスキャッシュ
- 遅延ファイルキャッシュ
- jarファイル中のSQL参照
- zipファイル中のSQL参照
- カスタムファイルアクセス対応(
java.nio.fileパッケージを使用) - DB種類毎のファイルパス切り替え
SQLファイルルートフォルダの設定
uroboroSQLは初期設定ではクラスパス上にあるsqlフォルダ配下のSQLを読み込みます。
このSQLファイルルートフォルダは変更することができます。
SQLファイルルートフォルダの設定 (custom_sqlフォルダを指定)
java
// SqlResourceManagerImplの場合
SqlConfig config = UroboroSQL.builder(...)
// SQLファイルのルートフォルダの設定(custom_sqlフォルダをルートフォルダにする場合)
.setSqlResourceManager(new SqlResourceManagerImpl("custom_sql")).build();DB種類毎のファイルパス切り替え
後述するDialectを利用して、1つのSQL名に対してDB種類毎にファイルパスを切り替えることが出来ます。
以下のようなファイル構成を例として説明します。
txt
sql
├─employee
│ └─select_employee.sql -- Oracle, postgresql以外のDB用SQL
├─oracle
│ └─employee
│ └─select_employee.sql -- oracle DB用SQL
└─postgresql
└─employee
└─select_employee.sql -- postgresql DB用SQLSQL名としてemployee/select_employeeを指定した場合、
Oracle DBの場合はsql/oracle/employee/select_employee.sqlが読み込まれます。
同様にPostgresql DBの場合はsql/postgresql/employee/select_employee.sqlが読み込まれます。
DBに対するDialect用のフォルダがない場合は通常通りsql/employee/select_employee.sqlが読み込まれます。
DB毎のフォルダ名
| DB名 | フォルダ名 |
|---|---|
| H2 DB | h2 |
| Microsoft SQL Server | mssql |
| MySQL | mysql |
| Oracle | oracle |
| Postgresql | postgresql |
| その他 | default |
