タスクの一覧
S2JDBC-Genでは以下のタスクを提供します。
コアタスク
タスク名 | 説明 |
---|---|
Gen-Entity | データベースのテーブルからエンティティクラスのJavaコードを生成するタスクです。 |
Gen-Ddl | エンティティクラスからバージョン管理されたDDLを生成するタスクです。 |
Migrate | バージョン管理されたDDLを使いデータベーススキーマのマイグレーションを実行するタスクです。 |
オプションタスク
タスク名 | 説明 |
---|---|
Gen-Test | エンティティクラスからテストクラスのJavaコードを生成するタスクです。テストクラスではエンティティを使って実際にデータベースアクセスを行います。 |
Gen-Condition | エンティティクラスから条件クラスのJavaコードを生成するタスクです。条件クラスを使用すると、S2JDBCを使った問い合わせをタイプセーフにすることができます。 |
Gen-Names | エンティティクラスから名前インタフェースのJavaコードを生成するクラスです。名前インタフェースはエンティティのプロパティ名を定数としてもつインタフェースです。この定数を使用することで、結合先のプロパティや検索条件のプロパティをタイプセーフで指定できます。 |
Gen-Service | エンティティクラスからサービスクラスのJavaコードを生成するクラスです。サービスクラスはエンティティの問い合わせを簡略化するメソッドを提供します。 |
ユーティリティタスク
タスク名 | 説明 |
---|---|
Dump-Db-Meta | テーブルやカラムのメタデータをダンプするタスクです。主にS2JDBC-Genの開発者が利用することを想定しています。 |
Dump-Data | データベースのデータをCSV形式でダンプするタスクです。ダンプの機能はGen-Ddlタスクに含まれていますが、Gen-Ddlタスクとは別にダンプを行いたい場合に使用できます。 |
Load-Data | CSV形式のダンプファイルをロードするタスクです。ロードの機能はMigrateタスクに含まれていますが、Migrateタスクとは別にロードを行いたい場合に使用できます。 |
Exe-Sql | SQLファイルに含まれた任意のSQLを実行するタスクです。 |
タスクの使用例
タスクは組み合わせて使用します。 以下の例では、タスクを組み合わせ3つのターゲットを定義しています。
<project name="example-s2jdbc-gen" default="gen-ddl" basedir="."> <property name="classpathdir" value="src/main/webapp/WEB-INF/classes"/> <property name="rootpackagename" value="example"/> <property name="entitypackagename" value="entity"/> <property name="javafiledestdir" value="src/main/java"/> <property name="testjavafiledestdir" value="src/test/java"/> <property name="javafileencoding" value="UTF-8"/> <property name="env" value="ut"/> <property name="applyenvtoversion" value="false"/> <property name="jdbcmanagername" value="jdbcManager"/> <property name="version" value="latest"/> <path id="classpath"> <pathelement location="${classpathdir}"/> <fileset dir="src/main/webapp/WEB-INF/lib"/> <fileset dir="lib"/> </path> <taskdef resource="s2jdbc-gen-task.properties" classpathref="classpath"/> <target name="gen-entity"> <gen-entity rootpackagename="${rootpackagename}" entitypackagename="${entitypackagename}" javafiledestdir="${javafiledestdir}" javafileencoding="${javafileencoding}" env="${env}" jdbcmanagername="${jdbcmanagername}" classpathref="classpath" /> <javac srcdir="${javafiledestdir}" destdir="${classpathdir}" encoding="${javafileencoding}" fork="true" debug="on" classpathref="classpath"> <include name="${rootpackagename}/${entitypackagename}/**"/> </javac> <gen-test classpathdir="${classpathdir}" rootpackagename="${rootpackagename}" entitypackagename="${entitypackagename}" javafiledestdir="${testjavafiledestdir}" javafileencoding="${javafileencoding}" env="${env}" jdbcmanagername="${jdbcmanagername}" classpathref="classpath" /> <gen-names classpathdir="${classpathdir}" rootpackagename="${rootpackagename}" entitypackagename="${entitypackagename}" javafiledestdir="${javafiledestdir}" javafileencoding="${javafileencoding}" env="${env}" jdbcmanagername="${jdbcmanagername}" classpathref="classpath" /> <gen-service classpathdir="${classpathdir}" rootpackagename="${rootpackagename}" entitypackagename="${entitypackagename}" javafiledestdir="${javafiledestdir}" javafileencoding="${javafileencoding}" env="${env}" jdbcmanagername="${jdbcmanagername}" classpathref="classpath" /> </target> <target name="gen-ddl"> <gen-ddl classpathdir="${classpathdir}" rootpackagename="${rootpackagename}" entitypackagename="${entitypackagename}" env="${env}" jdbcmanagername="${jdbcmanagername}" classpathref="classpath" /> <gen-test classpathdir="${classpathdir}" rootpackagename="${rootpackagename}" entitypackagename="${entitypackagename}" javafiledestdir="${testjavafiledestdir}" javafileencoding="${javafileencoding}" env="${env}" jdbcmanagername="${jdbcmanagername}" classpathref="classpath" /> <gen-names classpathdir="${classpathdir}" rootpackagename="${rootpackagename}" entitypackagename="${entitypackagename}" javafiledestdir="${javafiledestdir}" javafileencoding="${javafileencoding}" env="${env}" jdbcmanagername="${jdbcmanagername}" classpathref="classpath" /> <gen-service classpathdir="${classpathdir}" rootpackagename="${rootpackagename}" entitypackagename="${entitypackagename}" javafiledestdir="${javafiledestdir}" javafileencoding="${javafileencoding}" env="${env}" jdbcmanagername="${jdbcmanagername}" classpathref="classpath" /> </target> <target name="migrate"> <migrate classpathdir="${classpathdir}" rootpackagename="${rootpackagename}" entitypackagename="${entitypackagename}" version="${version}" env="${env}" applyenvtoversion="${applyenvtoversion}" jdbcmanagername="${jdbcmanagername}" classpathref="classpath" /> </target> </project>
各ターゲットの役割は次のとおりです。
- gen-entityは、データベースからエンティティクラスを生成し、エンティティクラスに関連する便利クラスも生成します。
- gen-ddlはDDLを生成します。DDLの生成前にはエンティティクラスを修正しているはずなので、エンティティクラスに依存する便利クラスも同時に生成しなおします。
- migrateはデータベーススキーマのマイグレーションを行います。
このビルドファイルは、実践で使われることを想定したターゲット定義を記述しています。 カスタマイズして使用すると良いでしょう。