ORMとしてMybatisを利用を利用することになりましたが、1からMapper及びModelクラスを作るのが大変の為、Mybatis Generatorを利用してDBで存在しているテーブルのMapper及びModelクラスを作成します。
Eclipseを利用するとプラグインより簡単に利用することができますが、今回はコマンドプロンプトにて実行する方法を記載します。
Mybatis Generatorのダウンロード
こちらよりダウンロードできます。
ConfigFileの作成
今回は以下のファイルを作成しました。
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>
<!-- JDBCの格納場所を指定 日本語がパス内に入っているとうまく機能しない場合あり -->
<classPathEntry location="D:\netbeans\mysql-connector-java-5.1.34-bin.jar" />
<context id="context1">
<!-- コメント -->
<commentGenerator>
<!--コメント 有効にするとMapper及びModelにコメントが追記される。-->
<!--<property name="suppressAllComments" value="true"/>-->
<!-- コメントのタイムスタンプ 有効にするとMapper及びModelにタイムスタンプが追記される。-->
<!--<property name="suppressDate" value="true" /> -->
</commentGenerator>
<!-- JDBCの接続 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.1.**/test" userId="test" password="test" />
<!-- タイプ変換 -->
<javaTypeResolver>
<!-- 数値型(Long, Integer, Short, etc.)をbigdecimalに変更するか -->
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- Modelの格納先 targetProjectはsrc\main\javaまでを指定(それ以降のディレクトリはtargetPackageにより自動生成される。)-->
<javaModelGenerator targetPackage="jp.kaede.mybatis.cmn.model" targetProject="D:\netbeans\test\src\main\java" />
<!-- sqlMap(XML)の格納先 -->
<sqlMapGenerator targetPackage="jp.kaede.mybatis.cmn.mapper" targetProject="D:\netbeans\test\src\main\java" />
<!--DAO(Mapper)の格納先-->
<javaClientGenerator targetPackage="jp.kaede.mybatis.cmn.mapper" targetProject="D:\netbeans\test\src\main\java" type="XMLMAPPER" />
<!-- テーブル指定 ワイルドカード(%)OK -->
<table schema="test" tableName="%" enableInsert="true" enableSelectByPrimaryKey="true" enableSelectByExample="true" enableUpdateByPrimaryKey="true" enableUpdateByExample="true" enableDeleteByPrimaryKey="true" enableDeleteByExample="true" enableCountByExample="true" selectByExampleQueryId="true" modelType="hierarchical"></table>
</context>
</generatorConfiguration>
今回はMySQLですが、Postgresql等他のDBの設定も可能です。
sqlMap(XML)とMapperの格納フォルダは同じにしといた方がいいと思います。
テーブル指定はワイルドカードで全テーブルを設定しています。
テーブル指定にてenableSelectByExample等「***Example」がありますが、検索条件の際には必要の為trueにしています。
実行方法
以下の方法で実行できます。
mybatis-generator-core-1.3.2.jarとgeneratorConfig.xmlは同一ディレクトリに入れている必要があります。
JDKをインストールし、メモ帳を開き書きの情報を「mybatisGenerate.cmd」にて保存します。
java -jar "D:\netbeans\mybatis-generator-core-1.3.2.jar" -configfile generatorConfig.xml -overwrite
pause
保存したらmybatisGenerate.cmdをダブルクリックにて実行します。
指定したディレクトリにファイルが作成されていれば完了です。
注意事項
自動でファイルを作成してくれますが、削除はしてくれない為、テーブルが無くなった場合、手動でディレクトリまたはファイルの削除が必要になります。
削除まで自動でしたい場合はAntで作成するか、Eclipseプラグインで対応できます。
これにより、手動で行う部分が大分なくなりますので使いやすくなると思います。
join等の複数テーブルが結合されたものはできない為、そこは手動でやる必要がありますね。