MyBatis Generatorを使用して、JavaとDBのやり取りを行うためのMapperやEntityModelを作成します。
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
コメント