Quillの設定情報は下記ファイルのいずれかに記述します。

任意のファイル

適用条件

  • 下記処理がQuillContainer,QuillInjectorを使用する前に呼ばれている

Seasar.Quill.QuillConfig.ConfigPath = "c:/hoge.config"; // 任意のファイルパス

ConfigPathに設定したパス上のファイル内にあるQuill設定情報が適用されます。


アプリケーション構成ファイル(app.config)

適用条件

  • QuillConfig.ConfigPathに値を設定していない
  • アプリケーション構成ファイル内に「quill」セクションが存在する

アプリケーション構成ファイル(App.config)で「quill」セクションを使うためには、以下のようにconfigSections/section要素を追加します。

App.config
<configuration>
  <configSections>
    <section name="quill"
        type="Seasar.Quill.Xml.QuillSectionHandler, Seasar.Quill" />
  </configSections>
    ・・・
<configuration>

「Seasar.Quill.dll.config」ファイル

適用条件

  • QuillConfig.ConfigPathに値を設定していない
  • アプリケーション構成ファイルが存在しない、
    または構成ファイル内にquillセクションが存在しない
  • 「Seasar.Quill.dll.config」という名称のファイルが実行ファイルと同じフォルダ内に存在する
  • 「Seasar.Quill.dll.config」内に「quill」セクションが存在する


Quill設定情報は「quill」セクションに記述します。

設定する項目は下記の通りです。

設定例

  <quill>
    <dataSources>
      <dataSource name="ds">
        <provider>SqlServer</provider>
        <connectionString>"(接続文字列)"</connectionString>
        <class>Seasar.Extension.Tx.Impl.TxDataSource</class>
      </dataSource>
    </dataSources>
    <assemblys>
      <assembly>(データベースドライバ)</assembly>
    </assemblys>
  </quill>


各データソースの定義は「dataSource」タグに記述し、
複数データソースを定義する場合は「dataSources」タグ内に
各データソースの設定を書いていきます。

dataSourcesで定義されたデータソースは
Seasar.Quill.Database.DataSource.Impl.SelectableDataSourceProxyWithDictionaryという
クラスのインスタンスでQuillコンテナ内に保持し、DBアクセス時に使用します。

dataSourceタグ内で設定する内容は以下の通りです。

データソース名

データソースをアプリケーション中で一意に識別するための名前です。

プロバイダクラス名

ADO.NET上で使うクラス名を保持するSeasar.Extension.ADO.DataProvider継承クラス名です。
独自のプロバイダクラスを使う場合は名前空間付きで指定します。
Quill内にあらかじめ定義されているプロバイダクラスを使用する場合は
クラス名のみの指定で使用可能です。

以下のプロバイダがQuill内に定義されています。

プロバイダ説明
SqlServerSQLServer用プロバイダクラス
ODPODP.NET(Oracle)用プロバイダクラス
OracleOracle用プロバイダクラス
DB2DB2用プロバイダクラス
MySQLMySQL用プロバイダクラス
PostgreSQLPostgreSQL用プロバイダクラス
FirebirdFirebird用プロバイダクラス)
SQLiteSQLite用プロバイダクラス)
OleDbOleDb用プロバイダクラス)

接続文字列

クラスを指定する方法と文字列を直接書く方法があります。

クラスを指定する場合は
Seasar.Quill.Database.DataSource.Connection.IConnectionStringインターフェースを
実装し、「connectionString」タグにクラス名を名前空間付きで指定して下さい。

文字列で直接書く場合は接続文字列を「"」で囲って指定して下さい。

データソースは以下の優先順序でQuill内に保持されます。

  • 1.「quill」セクションdataSourcesdataSourceの設定
  • 2.App.config内ConnectionStringsセクションの設定
  • 3.XXX.dicon内に記述された設定
  • データソースクラス名

    Seasar.Extension.ADO.Impl.DataSourceImplや
    Seasar.Extension.Tx.Impl.TxDataSourcelなどの
    Seasar.Extension.ADO.IDataSource実装クラス名を
    名前空間付きで指定します。

    ※使用可能なデータソースはS2Container.NETと同じです。

    トランザクションを利用する場合は必ず
    Seasar.Extension.Tx.Impl.TxDataSourcel.TxDataSource
    またはその継承クラスを使用して下さい。

    設定例

    <quill>
        <!-- (他設定は省略) -->
        <!-- データソース設定 -->
        <dataSources>
            <dataSource name="ds">
                <provider>SqlServer</provider>
                <connectionString>"Server=localhost(途中略)"</connectionString>
                <class>Seasar.Extension.Tx.Impl.TxDataSource</class>
            </dataSource>
        </dataSources>
    </quill>
    


    Seasar.Quill.QuillContainer(Quill用DIコンテナ)初期化時に読み込むアセンブリを
    assemblys」、「assembly」で指定します。

    S2Dao.NETなどを使用する場合は下記アセンブリ名を指定します。

    使用機能アセンブリ名
    S2Dao.NETSeasar.Dao
    S2Windows.NETSeasar.Windows
    S2Dxo.NETSeasar.Dxo

    SQLServer以外のデータベースを使用する
    (SqlServer以外のプロバイダを利用する)場合は
    参照するプロバイダ用のアセンブリも指定する必要があります。

    設定例(Oracle Data Providerを使用する場合)

    <quill>
        <!-- (省略) -->
        <!-- ロードするアセンブリ名 -->
        <assemblys>
          <assembly>Seasar.Dao</assembly>      
          <!-- Oracle Data Provider for .NET を使用する場合に必要です。 -->
          <assembly>Oracle.DataAccess, version=10.2.0.100, Culture=neutral, 
              PublicKeyToken=89b483f429c47342</assembly>
        </assemblys>
        <!-- (省略) -->
    </quill>
    


    S2Daoの機能を使用する際に適用される設定クラスを指定します。

    設定例

    <quill>
        <!-- S2Dao設定 -->
        <daoSetting>Hoge.CustomDaoSetting</daoSetting>
        <!-- (他設定は省略) -->
    </quill>
    

    S2Dao設定の詳細はこちらをご覧下さい。


    トランザクションをかける箇所を指定する際に適用される
    設定クラスを指定します。

    設定例

    <quill>
        <!-- Transaction設定 -->
        <transactionSetting>Hoge.CustomTransactionSetting</transactionSetting>
        <!-- (他設定は省略) -->
    </quill>
    

    トランザクション設定の詳細はこちらをご覧下さい。


    Quill設定ファイルが存在しない、または設定の記述がない場合、
    下記設定が適用されます。

    • データソースの設定
    • アプリケーション構成ファイルの「ConnectionString」セクション、
      またはdiconファイルの設定を読みに行く。
      (どちらの設定もない場合はデータソース設定は行われない。)
    • アセンブリ
    • ロードは行われない。
    • S2Dao設定クラス
    • Seasar.Quill.Dao.Impl.TypicalDaoSettingクラス
    • トランザクション設定クラス
    • Seasar.Quill.Database.Tx.Impl.TypicalTransactionSettingクラス