mybatis generator sample

1、create generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>

<classPathEntry location="C:\Users\weishuxing\.m2\repository\mysql\mysql-connector-java\5.1.6\mysql-connector-java-5.1.6.jar" />

<context id="MySQLTables" targetRuntime="MyBatis3">
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://server.forestsoft.jp:3306/accountingSystem"
userId="forest"
password="2012tserof">
</jdbcConnection>

<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>

<javaModelGenerator targetPackage="com.cleartsai.mybatis.model" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>

<sqlMapGenerator targetPackage="com.cleartsai.mybatis.persistence" targetProject="src/main/resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>

<javaClientGenerator type="XMLMAPPER" targetPackage="com.cleartsai.mybatis.persistence" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>

<table tableName="USER" domainObjectName="USER" >
</table>

</context>
</generatorConfiguration>

2、add a plugin to a pom xml

<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.0</version>
</plugin>

3、mvn mybatis-generator:generate

以上です。笑い!

 

 

 

 

 

 

 

 

 

 

 

maven で s2jdbc-gen

pom.xml

pom.xmlmaven-antrun-plugin の設定を追加します。
ant への依存性と s2jdbc-gen-build.xml へのパスを指定し、実行するターゲット名は環境変数として受け取れるよう設定します。
また、s2jdbc-gen-build.xml にて maven クラスパスを参照できるよう、inheritRefs 属性に true を指定します。

(snip)
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant</artifactId>
                        <version>1.7.0</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <tasks>
                        <ant antfile="${basedir}/s2jdbc-gen-build.xml" inheritRefs="true">
                            <target name="${ant.target}" />
                        </ant>
                    </tasks>
                </configuration>
                <goals>
                    <goal>run</goal>
                </goals>
            </plugin>
        </plugins>
    </build>
(snip)

s2jdbc-gen そのものへの依存性も忘れずに追加します。ぼくが親切にこういうことを書くときは、忘れて痛い目を見たときです。

(snip)
        <dependency>
            <groupId>org.seasar.container</groupId>
            <artifactId>s2jdbc-gen</artifactId>
            <version>2.4.40</version>
        </dependency>
    </dependencies>
(snip)
s2jdbc-gen-build.xml

pom.xml と同様に、プロジェクトディレクトリ直下に s2jdbc-gen-build.xml を以下の内容で作成します。
taskdef では、maven クラスパスから s2jdbc-gen-task.properties を探してタスク定義として読み込むよう指定しています。

<?xml version="1.0"?>
<project name="s2jdbc-gen">
    <target name="init">
        <property name="version" value="latest" />
        <property name="classpathdir" value="target/classes" />
        <property name="rootpackagename" value="jp.forest.test" />
        <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="jdbcmanagername" value="jdbcManager" />
        <taskdef
            resource="s2jdbc-gen-task.properties"
            classpathref="maven.runtime.classpath"/>
    </target>
    <target name="gen-entity" depends="init">
        <gen-entity
            rootpackagename="${rootpackagename}"
            entitypackagename="${entitypackagename}"
            javafiledestdir="${javafiledestdir}"
            javafileencoding="${javafileencoding}"
            env="${env}"
            jdbcmanagername="${jdbcmanagername}"
            classpathref="maven.runtime.classpath" />
    </target>
</project>

同様にして gen-service タスクや gen-names タスクを追加することができます。
コアタスク、オプションタスクの一覧は s2jdbc-gen のドキュメント に記載されています。

実行

jdbc.dicon, s2jdbc.dicon にデータベース接続情報を設定したら、コマンドプロンプトより mvn antrun:run を実行します。

mvn antrun:run -Dant.target=gen-entity