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 インターフェイスを定義します。
@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 はパラメーターの生成に使用されます。無料で完全なパラメータ コンストラクター。
public interface UserMapper extends BaseMapper<User> { }
MyBatis Plus が提供する BaseMapper をここで使用します。これにより、多くの面倒な SQL 操作を節約できます。
3. データベース操作に MyBatis Plus を使用する
Mapper インターフェイスを定義した後、データベース操作に MyBatis Plus を使用できます。
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 は、エンティティ クラスの属性を自動的にマッピングします。データベースの対応する列。
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 チェーン操作を通じてクエリ条件と並べ替えルールが構築されます。
User user = userMapper.selectById(id); user.setAge(30); int count = userMapper.updateById(user);
データを更新するときは、まず selectById を使用して更新が必要なデータをクエリし、次に更新が必要な属性を変更します。 updateById を使用して、変更されたデータがデータベースに更新されます。
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 サイトの他の関連記事を参照してください。