テンプレートによるセットアップ

環境の前提

詳しくはこちら

セットアップ概要

手順は以下のようになります。

補足:自動生成のために必要なプロパティを「ビルドプロパティ」と呼びます。

推奨される配置構成

推奨されるDBFluteのモジュールやクライアント、自動生成クラスのソースディレクトリの配置構成は以下のようになります。後述する手順の中で以下の構成を参考にします。

dbflute_[project]の[project]の部分には任意の名称を付けます。通常は対象となるデータベース(スキーマ)を表す名称を付けます。この名称を「クライアントプロジェクト名」と呼びます

ex) Javaの場合:
     xxxproject
         +- .settings
         +- dbflute_[project]         // DBFluteクライアント
         |     +- dfprop
         |     +- log
         |     +- ...
         +- mydbflute
         |     +- dbflute-0.8.8       // DBFluteモジュール
         +- src/main/java             // ソースディレクトリ

	
ex) C#の場合:
     xxxproject
         +- dbflute_[project]         // DBFluteクライアント
         |     +- dfprop
         |     +- log
         |     +- ...
         +- lib
         +- mydbflute
         |     +- dbflute-0.8.8       // DBFluteモジュール
         +- source/xxx.sln            // ソースディレクトリ
	

1. DBFluteモジュールをダウンロードして配置

DBFluteモジュールをダウンロードしてZIPファイルを解凍し、DBFluteモジュールをプロジェクトに配置して下さい。

配置場所は、先述の配置構成を参考にして下さい。

2. DBFluteクライアントの配置

2-1. テンプレートの配置

先ほど配置したDBFluteモジュールの./etc/client_directory-template/minimumProperties.zipを解凍し、展開されたディレクトリの中のファイルを全てそのままコピーしてプロジェクトに配置して下さい。(C#の場合はminimumProperties4cs)

配置場所は、先述の配置構成を参考にして下さい。

2-2. クライアントプロジェクト名の反映

クライアントプロジェクト名(DBFluteクライアントのdbflute_[project]の[project]部分)を各種設定に反映して下さい。

2-3. 利用するDBFluteの指定

_project.bat/.shの「DBFLUTE_HOME」変数の値を以下のように修正して下さい。(コメントアウトを外します)

ex) DBFluteの配置場所が「xxxproject/mydbflute/dbflute-0.6.5」の場合: @_project.bat
set DBFLUTE_HOME = ../mydbflute/dbflute-0.6.5
	

補足:DBFluteモジュールをバージョンアップした際は、ここを修正してバージョンを切り替えます。

3. ビルドプロパティの設定

3-1. build-xxx.propertiesの設定

3-1-1. 必須プロパティ

build-xxx.propertiesをテキストエディタで開いて、以下の必須プロパティを設定して下さい。

これらは、build-xxx.propertiesに最初からコメント付きで定義されています。プロジェクトに適した値に修正して下さい。

3-1-2. 特定環境対応プロパティ

「ある特定の環境に適用するためのプロパティ」を設定して下さい。

それぞれデフォルト値が設定されていますので、特に指定の必要がなければ設定する必要はありません。

もし設定が必要な場合は、「torque.xxx = [value]」という行を追加して設定しますが、そのときに先ほど配置したDBFluteの「./etc/client_directory-template/fullProperties/build-ldb.properties」からコメント付きの記述をコピーして持ってくることをお奨めします。

さらに「複数DB対応」の場合に、考慮すべきプロパティが幾つかあります。詳しくはこちら

3-2. DB接続情報の設定

該当のデータベースへの接続情報をDBFluteクライアントの「./dfprop/databaseInfoMao.dfprop」ファイルに設定して下さい。 各種データベース毎の設定方法に関してはこちらをご覧下さい。(*dfprop = DBFluteプロパティ)

★新ドキュメントが完全に出来上がっていないため、旧ドキュメントのJDBCの設定「JDBC Setting」へのリンクをここに置いておきます。

4. 自動生成の実行

それでは、自動生成をしてみましょう。

4-1. スキーマ情報の取得(jdbc)

DBFluteクライアント配下のjdbc.bat(.sh)を実行して下さい。実際にDBに接続してスキーマ情報を取得します。「./schema」配下にproject-schema-[project].xmlが出力されます。

4-2. スキーマ情報のHTML化(doc)

DBFluteクライアント配下のdoc.bat(.sh)を実行して下さい。「./output/doc」配下にproject-schema-[project].htmlが出力されているはずなのでご覧下さい。スキーマ情報がしっかり取得できていることを確認して下さい。

4-3. クラスファイルの自動生成(generate)

DBFluteクライアント配下のgenerate.bat(.sh)を実行して下さい。パッケージ構成と共にクラスファイルが生成されます。

4-4. コンパイルしてみる

前提となる環境がそれっていればコンパイルが通るはずです。

4-5. DBFluteのコンポーネントを有効にする

Javaの場合(Seasar)

自動生成クラスの出力先が「../src/main/java(デフォルト)」であれば、dbflute.diconは「../src/main/resources」に出力されます。これをapp.dicon(SeasarのルートDicon)において、Includeするようにして下さい。

Doltengなどでプロジェクトを自動生成した場合、app.diconにてデフォルトで「dao.dicon」をがIncludeされている場合がありますがこれは削除して下さい。

ex) app.diconでdbflute.diconをInclude @Dicon
<include path="dbflute.dicon"/>
<!-- <include path="dao.dicon"/> -->
	
Javaの場合(Spring)

DIコンテナにSpringを利用する場合は、dbflute.diconに代わってdbfluteBeans.xmlが出力されているはずです。これをルートのBean定義から参照するようにして下さい。

ex) beeanRefContext.xmlでdbfluteBeans.xmlをInclude @XML
<beans>
    <bean id="context" class="org.springframework.context.support.ClassPathXmlApplicationContext">
        <constructor-arg>
            <list>
                <value>dbfluteBeans.xml</value>
                <value>jdbcBeans.xml</value>
                <value>jtaBeans.xml</value>
                <value>tranBeans.xml</value>
                <value>exampleBeans.xml</value>
            </list>
        </constructor-arg>
    </bean>
</beans>
	
C#の場合

Quillを利用しているため、特にDiconのような設定ファイルはありません。

4-5. さあDBFluteを使ってみましょう!

Javaの場合(Seasar)

Seasarコンポーネントに以下のように定義することでBehaviorをインジェクションすることができます。

ex) TeedaのページクラスにBehaviorをインジェクション(MEMBERというテーブルの場合) @Java
@Binding(bindingType = BindingType.MUST)
protected MemberBhv memberBhv;
	

変数名がそのままdbflute.dicon上のコンポーネント名と一致する必要がありますのでご注意ください。(Behaviorのクラス名の先頭を小文字にしたものがコンポーネント名です)

C#の場合

任意のクラス(Seasarコンポーネントである必要はない)に以下のように定義することでBehaviorをインジェクションすることができます。

ex) 任意のクラスにBehaviorをインジェクション(MEMBERというテーブルの場合) @C#
protected MemberBhv memberBhv;
public UserOriginalClass() {// コンストラクタ
    QuillInjector.Inject(this);
}
	

型で判別しますので変数名は自由です。

5. その後

DBFluteのセットアップが終わった後に、DBFluteを実際に使いながら必要に応じてアプリケーションの特性に合わせた調整を行います。

具体的には「シーケンス」、「排他制御」、「共通カラム」、「区分値」などです。詳しくはこちら