ホームページ  >  記事  >  Java  >  Spring Boot と MyBatis Plus に基づいて ORM マッピングを実装する

Spring Boot と MyBatis Plus に基づいて ORM マッピングを実装する

王林
王林オリジナル
2023-06-22 21:27:42923ブラウズ

Java Web アプリケーションの開発プロセスでは、ORM (オブジェクト リレーショナル マッピング) マッピング テクノロジを使用して、データベース内のリレーショナル データを Java オブジェクトにマッピングし、開発者がデータにアクセスして操作できるようにします。 Spring Boot は現在最も人気のある Java Web 開発フレームワークの 1 つであり、MyBatis を統合する方法を提供しています。MyBatis Plus は MyBatis をベースに拡張された ORM フレームワークです。この記事では、Spring Boot と MyBatis Plus を使用して ORM マッピングを実装する方法を紹介します。

1. Spring Boot は MyBatis Plus を統合します
Spring Boot で MyBatis Plus を使用するのは非常に簡単で、MyBatis Plus の依存関係を Maven に追加するだけです。

<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-boot-starter</artifactId>
  <version>3.4.2</version>
</dependency>

同時に、次に示すように、application.properties または application.yml で MyBatis Plus 関連のパラメータを設定します。

#数据库配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
#MyBatis Plus配置
mybatis.configuration.cache-enabled=false
mybatis.mapper-locations=classpath:mapper/*.xml

その中で、driver-class-name、url、username、およびパスワードはデータベース関連の設定であり、mapper-locations は MyBatis Plus の SQL マッピング設定ファイルが配置されているパスです。

2. エンティティ クラスと Mapper インターフェイスを定義する
MyBatis と同様、MyBatis Plus を使用するにはエンティティ クラスと Mapper インターフェイスを定義する必要があります。以下では、単純な User テーブルを例として、対応するエンティティ クラスと Mapper インターフェイスを定義します。

  1. エンティティ クラスの定義
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class User {

    private Integer id;
    private String name;
    private Integer age;
    private String email;
    private Integer gender;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;

}

注釈 @Getter、@Setter、および @Builder を使用するとコードを簡素化できますが、@NoArgsConstructor と @AllArgsConstructor はパラメーターの生成に使用されます。無料で完全なパラメータ コンストラクター。

  1. Mapper インターフェイスの定義
public interface UserMapper extends BaseMapper<User> {
}

MyBatis Plus が提供する BaseMapper をここで使用します。これにより、多くの面倒な SQL 操作を節約できます。

3. データベース操作に MyBatis Plus を使用する
Mapper インターフェイスを定義した後、データベース操作に MyBatis Plus を使用できます。

  1. データの挿入
User user = User.builder()
        .name("test")
        .age(20)
        .email("test@test.com")
        .gender(1)
        .createTime(LocalDateTime.now())
        .updateTime(LocalDateTime.now())
        .build();
int count = userMapper.insert(user);

データを挿入するときは、Mapper インターフェイスで提供される挿入メソッドを直接使用できます。MyBatis Plus は、エンティティ クラスの属性を自動的にマッピングします。データベースの対応する列。

  1. クエリ データ
List<User> userList = userMapper.selectList(null);

データをクエリするときは、Mapper インターフェイスで提供される selectList メソッドを直接使用し、null または空の QueryWrapper オブジェクトを渡してクエリを実行できます。すべてのデータ。さらに、MyBatis Plus が提供するラムダ式とチェーン操作を使用して、以下に示すように、より複雑なクエリを実行することもできます。

QueryWrapper<User> wrapper = Wrappers.<User>lambdaQuery()
        .eq(User::getGender, 1)
        .ge(User::getAge, 20)
        .orderByDesc(User::getCreateTime);
List<User> userList = userMapper.selectList(wrapper);

上記のコードでは、Wrappers を使用します。4c8e0c17c3bd7e0081bb17cc795e1984lambdaQuery() A QueryWrapperオブジェクトが定義され、.eq、.ge、および .orderByDesc チェーン操作を通じてクエリ条件と並べ替えルールが構築されます。

  1. データの更新
User user = userMapper.selectById(id);
user.setAge(30);
int count = userMapper.updateById(user);

データを更新するときは、まず selectById を使用して更新が必要なデータをクエリし、次に更新が必要な属性を変更します。 updateById を使用して、変更されたデータがデータベースに更新されます。

  1. データの削除
int count = userMapper.deleteById(id);

最後に、データを削除するときは、Mapper インターフェイスで提供される deleteById メソッドを呼び出すだけです。

4. 結論
この記事では、Spring Boot と MyBatis Plus を使用して ORM マッピングを実装する方法を紹介し、簡単な構成とコードでデータベース操作を実現できます。 MyBatis Plus は、MyBatis の拡張フレームワークとして、コードの可読性と保守性を向上させながら、開発者の作業負荷を大幅に簡素化できます。紙面の都合上、本稿ではMyBatis Plusの基本的な使い方のみを紹介しますので、より高度な機能については公式ドキュメントを参照してください。

以上がSpring Boot と MyBatis Plus に基づいて ORM マッピングを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。