概要
Doma-Genは、AntとFreeMarkerを使用したコード生成ツールです。
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」をチェックします。