<Java>MyBatis GeneratorでO/Rマッパーを作成する

Java

MyBatis Generatorを使用して、JavaとDBのやり取りを行うためのMapperやEntityModelを作成します。

この記事が対象とする環境
Java Spring Bootプロジェクト ※あらかじめ作成(説明なし)
PostgreSQL ※あらかじめ作成(説明なし)
Maven

Java Spring Bootのプロジェクトをあらかじめ「Spring Initializr」などを使用して作成してください。

準備

フォルダ構成

your root/
`-- learning/
  |-- src/
  |   `-- main/
  |       `-- resources/
  |          |-- application.properties
  |          `-- generatorConfig.xml
  `-- pom.xml

application.properties

今回はPostgreSQLを使用します。あらかじめA5M2などを使用して接続できることを確認しておいてください。もちろん、O/Rマッパーの元となるテーブルなども作成しておく必要があります。

# PostgreSQL Connection Configuration
spring.datasource.url=jdbc:postgresql://localhost:5432/learning-local
spring.datasource.username=postgres
spring.datasource.password=db-pass
spring.datasource.driver-class-name=org.postgresql.Driver

pom.xml

今回はMavenを使用します。pom.xmlのMyBatisに必要な部分のみの抜粋です。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<dependencies>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>3.0.3</version>
		</dependency>
		<dependency>
			<groupId>org.mybatis.generator</groupId>
			<artifactId>mybatis-generator-core</artifactId>
			<version>1.4.0</version>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter-test</artifactId>
			<version>3.0.3</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>1.4.1</version>
				<configuration>
					<configurationFile>./src/main/resources/generatorConfig.xml </configurationFile>
					<overwrite>true</overwrite>
					<includeAllDependencies>true</includeAllDependencies>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

generatorConfig.xml

MBGで生成するための設定です。今回は全テーブルを対象としています。

<?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>
    <context id="default" targetRuntime="MyBatis3">
        <jdbcConnection driverClass="org.postgresql.Driver"
                        connectionURL="jdbc:postgresql://localhost:5432/learning-local"
                        userId="postgres"
                        password="db-pass">
        </jdbcConnection>

        <javaModelGenerator targetPackage="com.jpterrace.learning.model" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
        </javaModelGenerator>

        <sqlMapGenerator targetPackage="com.jpterrace.learning.mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <javaClientGenerator type="XMLMAPPER" targetPackage="com.jpterrace.learning.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <table schema="public" tableName="%">
        </table>
    </context>
</generatorConfiguration>

O/Rマッパー作成

Generator実行

Javaプロジェクトのフォルダに移動してから以下のコマンドを実行します。

mvn mybatis-generator:generate

generatorConfig.xmlの設定に従って、Mapper、Model、XMLが作成されます。

your root/
`-- learning/
  |-- src/
  |   `-- main/
  |       |-- java/
  |       |   `-- project-name/
  |       |     |-- controller/
  |       |     |-- mapper/
  |       |     |   `-- public/
  |       |     |      `-- SampleMapper.java ★
  |       |     `-- model/
  |       |         `-- public/
  |       |              `-- SampleModel.java ★
  |       `-- resources/
  |          |-- project-name/
  |          |      `-- public/
  |          |            `-- SampleMapper.xml ★
  |          |-- application.properties
  |          `-- generatorConfig.xml
  `-- pom.xml

札幌在住エンジニア。JavaやPHPやWordPressを中心とした記事が中心です。

【SE歴】四半世紀以上
【Backend】php / java(spring) / c# / AdobeFlex / c++ / VB / cobol
【Frontend】 vue.js / jquery他 / javascript / html / css
【DB】oracle / mysql / mariadb / sqlite
【infrastructure】aws / oracle / gcp
【license】aws(saa-c03) / oracle master / XML Master / Sun Certified Programmer for the Java 2 Platform 1.4

Nobelをフォローする
Java
Nobelをフォローする

コメント

タイトルとURLをコピーしました