Mavenでs2jdbc-gen
まぁググれば色々情報あるのでそれ参考にすれば良いと思います
今までは、普通にデータベースにテーブル作ってエンティティクラス書いてみたいな事してましたが、s2jdbc-genを使ってデータベースからテーブル構成のSQLをダンプできたり、厚生からエンティティクラスを生成したり、データをロード・マイグレーション出来る模様
pom.xml
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>default-cli</id>
<configuration>
<tasks>
<property name="classpath" refid="maven.runtime.classpath" />
<ant antfile="${basedir}/s2jdbc-gen-build.xml" inheritRefs="true" target="${ant.target}"></ant>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
s2jdbc-genはantタスクな模様なので、maven-antrun-pluginを使って実行する。
<dependency>
<groupId>org.seasar.container</groupId>
<artifactId>s2jdbc-gen</artifactId>
<version>2.4.46</version>
</dependency>
も記述しておく
s2jdbc-gen-build.xml
<?xml version="1.0" ?>
<project name="s2jdbc-gen">
<taskdef resource="s2jdbc-gen-task.properties" classpath="${classpath}" />
<!-- エンティティクラスからスキーマ情報等をダンプする。dbっていうディレクトリにファイルが生成される -->
<target name="gen-ddl">
<gen-ddl
classpathdir="target/classes"
rootpackagename="sample"
classpath="${classpath}"
dump="true" />
</target>
<!-- データベース情報からエンティティクラスを生成する -->
<target name="gen-entity">
<gen-entity
rootpackagename="sample"
classpath="${classpath}" />
</target>
<!-- gen-ddlでダンプされたデータからデータベース情報をマイグレーション -->
<target name="migrate">
<migrate
classpathdir="target/classes"
rootpackagename="sample"
classpath="${classpath}" />
</target>
</project>
あとは
mvn antrun:run -Dant.target=ターゲット名
とかで実行出来る。又、db/migrate/バージョン/create/040-dump/テーブル名.csvにデータをぶっこむ事でマイグレーションをする際にデータを入れる事も可能な模様