About

ドキュメント

Javadocs

プロジェクト文書

Built by Maven

概要

Doma-Genは、AntFreeMarkerを使用したコード生成ツールです。

Doma-Genを利用すると、次のことが可能です。

  • エンティティクラスのJavaコード生成
  • エンティティリスナークラスのJavaコード生成
  • DaoインタフェースのJavaコード生成
  • SQLのコード生成
  • SQLをテストするためのJavaテストコード生成

セットアップ

Doma-Genの配布ファイルを、ダウンロードページからダウンロードします。

配布ファイルを解凍し、Doma-GenとFreeMarkerのjarファイルとサンプル用のビルドファイル(doma-gen-build.xml)を取り出してください。

Doma-GenとFreeMarkerのjarファイルは、Antタスクのクラスパスに通す必要があります。 サンプル用のビルドファイルは、独自ビルドファイル作成時のコピー元として活用してください。

タスク

Doma-Genには、2つのタスクが用意されています。

タスク名 説明
Gen アプリケーション実行時に使用されるクラスやSQLのコードを生成します。
GenTest テストのためのコードを生成します。

サンプル用ビルドファイル

GenタスクとGenTestタスクを使用するサンプル用ビルドファイルの内容を示します。 これは、配布ファイルに含まれているサンプルのdoma-gen-build.xmlと同じものです。

<?xml version="1.0" encoding="UTF-8"?>
<project name="doma-gen-example" default="gen" basedir=".">
    
    <property name="javaDestDir" value="src"/>
    <property name="sqlDestDir" value="src"/>
    <property name="dialectName" value="hsqldb"/>
    <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
    <property name="url" value="jdbc:hsqldb:file:example"/>
    <property name="user" value="sa"/>
    <property name="password" value=""/>
    <property name="entityPackageName" value="example.entity"/>
    <property name="daoPackageName" value="example.dao"/>
    <property name="configClassName" value="example.AppConfig"/>
    <property name="sqlTestClassName" value="example.SqlTest"/>
    <property name="sqlFilePattern" value="META-INF/**/*.sql"/>
    
    <path id="classpath">
        <fileset dir="lib"/>
    </path>

    <taskdef name="gen" classname="org.seasar.doma.extension.gen.task.Gen" classpathref="classpath" loaderref="loader"/>
    <taskdef name="genTest" classname="org.seasar.doma.extension.gen.task.GenTest" loaderref="loader"/>
    <typedef name="entityConfig" classname="org.seasar.doma.extension.gen.task.EntityConfig" loaderref="loader"/>
    <typedef name="daoConfig" classname="org.seasar.doma.extension.gen.task.DaoConfig" loaderref="loader"/>
    <typedef name="sqlConfig" classname="org.seasar.doma.extension.gen.task.SqlConfig" loaderref="loader"/>
    <typedef name="sqlTestConfig" classname="org.seasar.doma.extension.gen.task.SqlTestConfig" loaderref="loader"/>
    
    <target name="gen">
        <gen
            dialectName="${dialectName}"
            driverClassName="${driverClassName}"
            url="${url}"
            user="${user}"
            password="${password}">
            <entityConfig
                destdir="${javaDestDir}"
                packageName="${entityPackageName}"
            />
            <daoConfig
                destdir="${javaDestDir}"
                packageName="${daoPackageName}"
                configClassName="${configClassName}"
            />
            <sqlConfig
                destdir="${sqlDestDir}"
            />
        </gen>
    </target>

    <target name="genTest">
        <genTest
            dialectName="${dialectName}"
            driverClassName="${driverClassName}"
            url="${url}"
            user="${user}"
            password="${password}">
            <sqlTestConfig
                destdir="${javaDestDir}"
                testClassName="${sqlTestClassName}">
                <fileset dir="${sqlDestDir}">
                    <include name="${sqlFilePattern}"/>
                </fileset>
            </sqlTestConfig>
        </genTest>
    </target>

</project>

実行方法

Eclipse3.5のWindows版を使用している場合、AntはEclipse上からではなく、コマンドラインから実行してください。 Eclipse3.5のWindows版には、コンソールに日本語を出力できない問題があります(Ecipse3.6では解決されています)。 コマンドラインから実行するには、Antを適切にインストールした環境で、次のように実行してください。

ant -f doma-gen-build.xml ターゲット名

この例では、上述したdoma-gen-build.xmlを使うものとします。 ターゲット名にはgen、もしくはgenTestを指定できます。

Eclipseを使用している場合、Eclipseの自動リフレッシュ機能を有効にしておくと、Eclipse外部で生成されたファイルが自動で認識されます。 この機能を有効にしておけば、Antでファイルを生成した後、手動でEclipseのワークスペースをリフレッシュする必要がなくなります。

この機能を有効にするには、メニューから「Window」 - [Preferences」 - 「General」 - 「Workspace」と辿り、「Refresh Automatically」をチェックします。

自動リフレッシュ機能の設定