背景
新たにDBにカラムを追加した際に、そのMapperやEntityを手動で更新するのは面倒です。そこで、MyBatis Generatorを使用して自動的にコードを生成し、効率的に変更を反映させる方法を紹介します。
Mybatis generatorの導入方法
MyBatis Generatorを追加
pom.xmlファイルに以下の依存関係を追加します。
<dependencies>
<!-- MyBatis Generatorの依存関係 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.0</version>
</dependency>
<!-- その他の依存関係 -->
</dependencies>
<build>
<plugins>
<!-- MyBatis Generatorプラグインの追加 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.0</version>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- その他のプラグイン -->
</plugins>
</build>
MyBatis Generatorの設定ファイルを作成
次に、MyBatis Generatorの設定ファイルを作成します。プロジェクトの直下にgeneratorConfig.xmlを配置します。もしこのXMLファイルが既に存在している場合は、消すか別の場所に移動させておきましょう。新しいカラムを追加した際に、最新の状態でコードを生成するためです。
generatorConfig.xml
<!DOCTYPE generatorConfiguration PUBLIC
"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="simple" targetRuntime="MyBatis3">
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/your_database"
userId="your_username"
password="your_password"/>
<javaModelGenerator targetPackage="com.example.project.dao.entity"
targetProject="src/main/java"/>
<sqlMapGenerator targetPackage="com.example.project.dao.mapper"
targetProject="src/main/resources"/>
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.example.project.dao.mapper"
targetProject="src/main/java"/>
<table tableName="transfer_setting"/>
</context>
</generatorConfiguration>
generatorConfig.xmlファイルの中で、データベース接続に関する情報を設定する必要があります。以下の情報を入力します:
driverClass: 使用するデータベースのJDBCドライバクラス名。
connectionURL: データベースの接続URL。
userId: データベースに接続するためのユーザー名。
password: データベースに接続するためのパスワード。
以下に、一般的なデータベースの接続情報の例を示します:
MySQL
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/your_database"
userId="your_username"
password="your_password"/>
PostgreSQL
<jdbcConnection driverClass="org.postgresql.Driver"
connectionURL="jdbc:postgresql://localhost:5432/your_database"
userId="your_username"
password="your_password"/>
コードの自動生成
mvn mybatis-generator:generate
生成されたMapper.javaとMapper.xmlを確認し、必要に応じて手動で修正します。特に、新しく追加されたカラムが正しく反映されているかを確認してください。