見出し画像

【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操作の自動生成が可能になります。

いいなと思ったら応援しよう!