【MyBatis】spring bootでDB操作簡単に作成する
MyBatisを使用してSpring Bootでデータベース操作を行うための基本的な手順とソースコードの例を説明します。MyBatisはJava用の持続性フレームワークで、SQLクエリを簡単に作成できるように設計されています。
MyBatisとは
MyBatisは、Javaの持続性フレームワークで、開発者がデータベースとやり取りするためのSQL文を簡単に書くことができます。これは、オブジェクト関係マッピング(ORM)フレームワークの一つですが、Hibernateなどの他のORMフレームワークとは異なり、SQL文を完全に制御できる点が特徴です。MyBatisは、SQL文をXMLファイルまたはアノテーションで定義し、それらをJavaオブジェクトにマッピングすることで、データベース操作をより直感的かつ柔軟に行えるようにします。また、セッション管理、トランザクション管理、キャッシュ管理など、データベース操作に関連するさまざまな機能も提供しています。
前提条件
Java Development Kit (JDK) がインストールされていること。
Maven または Gradle がインストールされていること。
Spring Boot の基本的な知識があること。
手順
プロジェクトのセットアップ:
Spring Initializr(https://start.spring.io/)を使用して、Spring Bootプロジェクトを作成します。
必要な依存関係(Web、MyBatis、データベースドライバーなど)を選択します。
依存関係の追加:
pom.xml (Mavenの場合) または build.gradle (Gradleの場合) に、MyBatisとデータベース接続のための依存関係を追加します。
Mavenの例:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
Gradleの例:
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.4'
アプリケーションプロパティの設定:
application.properties ファイルにデータベース接続設定を追加します。
例:
spring.datasource.url=jdbc:mysql://localhost:3306/your_database
spring.datasource.username=dbuser
spring.datasource.password=dbpass
マッパーインターフェースの作成:
MyBatisのマッパーインターフェースを作成します。これはデータベース操作を定義するインターフェースです。
例:
@Mapper
public interface UserMapper {
@Select("SELECT * FROM users WHERE id = #{id}")
User getUserById(int id);
}
エンティティクラスの作成:
データベースのテーブルに対応するエンティティクラスを作成します。
例:
public class User {
private int id;
private String name;
// getter と setter
}
サービス層の実装:
マッパーを使用してビジネスロジックを実装します。
例:
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public User getUserById(int id) {
return userMapper.getUserById(id);
}
}
コントローラの作成:
Spring MVC コントローラを作成し、サービス層を経由してデータベース操作を行います。
例:
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users/{id}")
public User getUserById(@PathVariable int id) {
return userService.getUserById(id);
}
}
アプリケーションの実行:
アプリケーションを実行し、エンドポイントをテストします。
この例では、MyBatisを使用して単純なCRUD操作を実装しています。より複雑なクエリやマッピングについては、MyBatisのドキュメントを参照してください。
最後にまとめ
前提条件と目標
目標は、作成済みのテーブルからModelクラス、Mapperインターフェース、XMLファイルを自動生成することです。
MySQLを使用し、SQLはすべてXMLファイルで定義します。
事前準備
MyBatis Generatorのインストール:
Eclipse MarketplaceからMyBatis Generatorをインストールします。
Spring Bootプロジェクトの作成:
必要な依存関係を含めてプロジェクトを作成します。
自動生成の設定
Generatorファイルの作成:
mybatis-generator-config.xml を任意の場所に作成します。
DB接続設定:
jdbcConnection タグを使用してデータベース接続情報を設定します。
モデル、SQL XML、Mapperインターフェースの出力設定: javaModelGenerator, sqlMapGenerator, javaClientGenerator を設定します。
自動生成対象のテーブル設定:
table タグを使用して、出力対象のテーブルとメソッドの種類を設定します。
実行
作成した設定ファイルを使用してMyBatis Generatorを実行します。
実行後の確認
自動生成したファイルの確認:
CRUD操作に必要なメソッドがMapperインターフェースに自動生成されます。
Mapperインターフェースの読み込み設定:
@MapperScan アノテーションを使用して自動生成したmapperインターフェースのパッケージを設定します。
DB接続設定:
application.properties にDBの接続設定を行います。
動作確認:
コントローラで直接実行して動作確認を行います。
手動作成部分の追加必要に応じて、特定のカラムに対するselectなど、追加の機能を手動で作成します。
この手順に従うことで、Spring BootとMyBatisを用いたDB操作の自動生成が可能になります。