みなさんこんにちは、masa です。今日は、前々から書きたいと思っていた Java の O/Rマッパーネタの中で、MyBatis Generator の使い方をご紹介します。
最近は『Spring MVC + MyBatis』という IT研修をやっている会社もあるみたいですね。MyBatis は他の O/Rマッパーと違い、オブジェクトと SQL をマッピングしますので、DB の環境に依存することなく SQL の実行を完全に制御したいときにオススメです。
しかし、最初にマッパーやエンティティクラスなどを自分で書くのは非常にしんどいです。そんなとき、手っ取り早く使えるようにファイルを自動生成してくれるのが MyBatis Genarator です。とりあえずこれを使って、あとからファイルをカスタマイズして覚えていくのが良いと思います。
今回は Maven 経由で MyBatis を入れます。
MyBatis Generator を手っ取り早くインストール
最近の Eclipse, NetBeans, IntelliJ ならどれでも Maven はすぐ使えるはずですので、pom.xml に以下を追記しましょう。
<project ...> ... <build> ... <plugins> ... <plugin> //ここから <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.0</version> </plugin> //ここまで ※入れるカテゴリはpluginsの中です ... </plugins> ... </build> ... </project>
これでプラグインとしてインストールされます。
generatorConfig.xml を配置する
この xml ファイルを元にして各ファイルが自動生成されますのでサンプルをもとに作りましょう。
作る場所はプロジェクトの resources 直下です。
プロジェクト名 > src > main > resources > 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:\Program Files\MySQL\Connector.J 5.1\mysql-connector-java-5.1.33-bin.jar"/> // ↑ MySQLに接続するConnectorJのjarファイルを指定します <context id="context1" > <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/car" userId="root" password="password" /> // ↑ ローカルのMySQLに接続するパスとDB名、それからMySQLのユーザーIDとパスを指定します <javaModelGenerator targetPackage="jp.cloudear.test.db" targetProject="C:\Users\masa\Documents\NetBeansProjects\project\src\main\java\" /> <sqlMapGenerator targetPackage="jp.cloudear.test.db" targetProject="C:\Users\masa\Documents\NetBeansProjects\project\src\main\java\" /> <javaClientGenerator targetPackage="jp.cloudear.test.db" targetProject="C:\Users\masa\Documents\NetBeansProjects\project\src\main\java\" type="XMLMAPPER" /> // ↑ 3行すべてに、MyBatisのクラスを入れたいパッケージ名と、プロジェクトのファイルパスを入れてください <table schema="student" tableName="classA" > // ↑ DB名とテーブル名を入れてください </table> </context> </generatorConfiguration>
いよいよファイルを自動生成する
上で作った xml ファイルを Maven から実行します。
※NetBeans の場合
pom.xml を右クリック > Mavenの実行 > ゴール > ゴール欄に
「mybatis-generator:generate」を入力してOK
生成に失敗した場合 MySQL への接続失敗の可能性が高いです。以下の点を確認してみてください。
- ローカルの MySQL に指定の ID と PW でちゃんと接続できるか
- generatorConfig.xml の Connector/Jのパス指定を間違えていないか
- generatorConfig.xml の DB名、テーブル名の指定を間違えていないか
他の IDE をご使用の方は IDE から Maven ゴールを実行する方法を調べてみてください。
Generator によって生成されたファイルを見てみる
生成に成功するとテーブル名が先頭についた以下のような4ファイルが出来ているはずです。
- エンティティクラス
- クエリ条件サンプルクラス
- マッパークラス
- マッパー設定XMLファイル
これらを使えば簡単に DBアクセスのプログラムが作れます。generatorConfig.xml を作るのがちょっとめんどくさいかもしれませんが、仮に手動で4つのファイルを作ろうとすると10倍時間がかかりますw それに比べたらだいぶ楽だと思います。
いかがでしたか?今回は MyBatis を簡単に使い始めるためのファイルを Generator を使って生成してみました。これらのファイルを使って DB操作してみると、カスタマイズして使いこなす一助になると思います。