1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MyBatis generatorでまとめて更新する

Last updated at Posted at 2024-10-08

背景

新たに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を確認し、必要に応じて手動で修正します。特に、新しく追加されたカラムが正しく反映されているかを確認してください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?