Spring Boot の MyBatis とは何か、およびその使用方法

Spring Boot の MyBatis とは何か、およびその使用方法

序章

MyBatis は、SQL クエリをオブジェクトにマップし、CRUD 操作を実行するための使いやすい API を提供する人気のある Java 永続性フレームワークです。Spring Boot は MyBatis と統合できるため、簡素化された構成と自動構成が提供され、MyBatis の使用が容易になります。

この記事では、MyBatis の構成および使用方法、一般的な CRUD 操作に MyBatis を使用する方法など、Spring Boot での MyBatis について紹介します。同時に、MyBatis アノテーションと XML 構成ファイルを使用して SQL クエリを記述する方法も紹介します。

ここに画像の説明を挿入

MyBatis を構成する

pom.xmlSpring Boot で MyBatis を使用するには、次のようにファイルに MyBatis と MyBatis-Spring の依存関係を追加する必要があります。

<dependencies>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.0</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>
</dependencies>

次に、データベース接続情報と MyBatis 構成情報を構成する必要があります。application.properties次のようにファイル内でデータベース接続情報を指定できます。

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=123456

このファイルではapplication.properties、次のように MyBatis の構成情報を指定することもできます。

mybatis.config-location=classpath:mybatis-config.xml

上記の構成では、MyBatis 構成ファイルのパスを として指定しましたclasspath:mybatis-config.xmlMyBatis 設定ファイルでは、キャッシュを有効にするかどうか、遅延読み込みを有効にするかどうかなど、いくつかの MyBatis グローバル設定を定義できます。

MyBatisの基本操作

MyBatis を構成したら、データベース操作に MyBatis の使用を開始できます。MyBatis は、SQL クエリを実行する 2 つの方法、XML 設定ファイルと注釈を提供します。次の例では、これら 2 つのメソッドを使用して CRUD 操作を実行する方法を示します。

XML 構成ファイルを使用して CRUD 操作を実行する

まず、データベース内のレコードを表すための Plain Old Java Object (POJO) クラスを作成する必要があります。この例では、User次のようにクラスを使用してユーザー情報を表します。

public class User {
    
    
    
    private Long id;
    private String name;
    private Integer age;
    
    // getters and setters
}

次に、SQL クエリとマッピングを定義する XML 構成ファイルを作成する必要があります。UserMapper.xmlこの例では、次のように、いくつかの基本的な SQL クエリとマッピング関係を定義するファイルを作成します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
    
    <resultMap id="userMap" type="User">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="age" property="age"/>
    </resultMap>
    
    <select id="getUserById" resultMap="userMap">
        SELECT * FROM user WHERE id = #{id}
    </select>
    
    <select id="getAllUsers" resultMap="userMap">
        SELECT * FROM user
    </select>
    
    <insert id="insertUser">
        INSERT INTO user (name, age) VALUES (#{name}, #{age})
    </insert>
    
    <update id="updateUserById">
        UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}
    </update>
    
    <delete id="deleteUserById">
        DELETE FROM user WHERE id = #{id}
    </delete>
    
</xml>

上記の XML 構成ファイルでは、クエリ結果をオブジェクトにマップするためのUserMapper名前空間と要素を定義しました次に、いくつかの SQL クエリとマッピング関係 ( など) を定義しましたこれらの SQL クエリは、MyBatis API を通じて呼び出して、対応する操作を実行できます。resultMapUsergetUserByIdgetAllUsersinsertUserupdateUserByIddeleteUserById

次に、データベースにアクセスするための API を定義するための Mapper インターフェイスを作成する必要があります。UserMapperこの例では、次のように、上記の SQL クエリに対応するメソッドを含むインターフェイスを作成します。

public interface UserMapper {
    
    
    
    User getUserById(Long id);
    
    List<User> getAllUsers();
    
    void insertUser(User user);
    
    void updateUserById(User user);
    
    void deleteUserById(Long id);
    
}

上記の Mapper インターフェイスでは、上記の SQL クエリに対応する 5 つのメソッドを定義しました。これらのメソッドの名前とパラメータのタイプは、XML 構成ファイル内の SQL クエリに対応している必要があります。

最後に、サービス層でマッパー インターフェイスを呼び出して、CRUD 操作を実行できます。簡単な例を次に示します。

@Service
public class UserService {
    
    
    
    @Autowired
    private UserMapper userMapper;
    
    public User getUserById(Long id) {
    
    
        return userMapper.getUserById(id);
    }
    
    public List<User> getAllUsers() {
    
    
        return userMapper.getAllUsers();
    }
    
    public void insertUser(User user) {
    
    
        userMapper.insertUser(user);
    }
    
    public void updateUserById(User user) {
    
    
        userMapper.updateUserById(user);
    }
    
    public void deleteUserById(Long id) {
    
    
        userMapper.deleteUserById(id);
    }
}

上記のサービスでは、UserMapperインターフェイスを挿入し、対応するメソッドを呼び出して CRUD 操作を実行します。

注釈を使用して CRUD 操作を実行する

XML 設定ファイルに加えて、MyBatis は SQL クエリを定義するための注釈の使用もサポートしています。注釈を使用して SQL クエリを定義する例を次に示します。

@Mapper
public interface UserMapper {
    
    
    
    @Select("SELECT * FROM user WHERE id = #{id}")
    User getUserById(Long id);
    
    @Select("SELECT * FROM user")
    List<User> getAllUsers();
    
    @Insert("INSERT INTO user (name, age) VALUES (#{name}, #{age})")
    void insertUser(User user);
    
    @Update("UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}")
    void updateUserById(User user);
    
    @Delete("DELETE FROM user WHERE id = #{id}")
    void deleteUserById(Long id);
    
}

上記のコードでは、注釈を使用して SQL クエリを定義し、@Mapperこの注釈を使用してこのインターフェイスを MyBatis の Mapper インターフェイスとしてマークします。これらの SQL クエリは、インターフェイスのメソッド呼び出しを通じて直接実行できます。

注釈を使用して SQL クエリを定義すると、コードがより簡潔で読みやすくなりますが、XML 構成ファイルと比較すると、注釈は保守性が低く、クエリ ステートメントを再利用するのが困難です。

要約する

この記事では、MyBatis を Spring Boot に統合する方法を紹介し、XML 構成ファイルとアノテーションを使用して CRUD 操作を実行する方法を示しました。MyBatis は、SQL クエリをオブジェクトにマップし、CRUD 操作を実行するための使いやすい API を提供する人気のある Java 永続性フレームワークです。Spring Boot の自動構成と簡素化された構成により、MyBatis の使用がより簡単かつ便利になります。MyBatis を使用すると、データベース操作がよりシンプルかつ効率的になり、コードがより読みやすく、保守しやすくなります。

おすすめ

転載: blog.csdn.net/2302_77835532/article/details/131590637