[Spring Boot] データベース永続層フレームワーク MyBatis — MyBatis の概要

MyBatis の紹介

このセクションでは、まず ORM とは何か、MyBatis とは何か、MyBatis の特徴と中心的な概念を紹介し、最後に MyBatis を起動して設定ファイルをロードする方法を説明します。

1.ORMとは

ORM (Object Relational Mapping) は、オブジェクト指向データベースとリレーショナル データベース間の不一致を解決するテクノロジです。簡単に言うと、ORM は、オブジェクトとデータベース間のマッピングを記述するメタデータを使用して、プログラム内のオブジェクトをリレーショナル データベースに自動的に保存します。

アプリケーションを開発する際、データベース内のデータを操作するためのデータアクセス層のコードを大量に記述する必要がありますが、これらのコードは繰り返しコードが大量に存在するか、操作が特に煩雑になります。これらの問題に対応して、ORM は完全なソリューションを提供し、オブジェクトをリレーショナル データベースに永続化する操作を簡素化します。

ORM フレームワークの本質は、プログラミングでデータベースを操作するコーディングを簡素化することです。Java 分野の発展に伴い、ORM フレームワークは際限なく登場しました。しかし、基本的には Hibernate と Mybatis の 2 つが最も人気があり、広く使用されています。

Hibernate: 完全に自動化されたフレームワークで、強力かつ複雑で扱いにくく、学習コストがかかります。

Mybatis: 半自動フレームワーク (開発者がデータベースを理解する必要がある)、SQL を自分で記述する必要があります。

HibernateはSQL文を書く必要がないことを主張し、MyBatisは動的SQLを得意としていますが、どちらもそれぞれの特徴があり、開発者はニーズに合わせて柔軟に利用することができます。

興味深い現象があります。ほとんどの伝統的な企業は Hibernate の使用を好みますが、インターネット業界では通常 MyBatis が使用されます。

2.MyBatisとは

MyBatis は、アプリケーション システムで広く使用されている優れたデータ永続層 ORM フレームワークです。元々は Apache のオープン ソース プロジェクトである iBatis でしたが、2010 年にこのプロジェクトは Apache Software Foundation によって Google Code に移され、MyBatis に名前変更され、2013 年 11 月に GitHub に移されました。

MyBatis は、カスタマイズされた SQL、ストアド プロシージャ、および高度なマッピングをサポートし、動的 ​​SQL を非常に柔軟に実装でき、単純な XML または注釈を使用してネイティブ情報を構成およびマッピングでき、Java POJO (Plain Ordinary Java Object、通常の Java オブジェクト) がマッピングされるものを簡単に変換できます。データベース内のテーブルとフィールド。

MyBatis はオープンソース ソフトウェアとして広く使用されており、次のような特徴があります。

サードパーティへの依存がなく、学習と使用が簡単です。

SQLを均一に抽出することで一元管理と最適化を実現します。

SQL をコードから分離すると、ビジネス ロジックとデータ アクセス ロジックが分離され、システム設計がより明確になり、保守が容易になり、単体テストの実行が容易になります。

柔軟で動的 SQL は、さまざまな条件をサポートし、異なる SQL を動的に生成します。

オブジェクトとデータベース間の ORM 関係マッピングをサポートするマッピング タグを提供します。

オブジェクト リレーショナル コンポーネントのメンテナンスをサポートするオブジェクト リレーショナル マッピング タグを提供します。

3.MyBatisのコアコンセプト

MyBatis は、Mapper 設定ファイル、Mapper インターフェイス、エグゼキュータ、セッション、およびその他のコンポーネントで構成されます。これらの非常に重要なコンポーネントと概念を以下に紹介します。

1) マッパー構成ファイル: XML ベースのマッパー構成ファイル、Java アノテーションに基づく MyBatis アノテーション、または MyBatis が提供する API を直接使用して実装できます。

2) マッパー インターフェイス: 一般に知られている DAO インターフェイスに似た、カスタマイズされたデータ操作インターフェイスを指します。初期の Mapper インターフェイスは実装するためにカスタマイズする必要がありましたが、MyBatis は Mapper インターフェイス用の動的なプロキシ オブジェクトを自動的に作成するようになりました。通常、Mapper インターフェイスのメソッドは、Mapper 構成ファイル内の選択、挿入、更新、削除、およびその他の XML ノードに対応します。

3) Executor (エグゼキュータ): MyBatis のすべての SQL ステートメントは、MyBatis のコア インターフェイスである Executor を通じて実行されます。

4) SqlSession (セッション): MyBatis のキー オブジェクト, JDBC の Connection に似ています。SqlSession オブジェクトには、SQL 操作を実行するためのデータベースに関連するすべてのメソッドが完全に含まれています。その最下層は JDBC 接続をカプセル化し、 SqlSession インスタンス。マップされた SQL ステートメントを実行します。

5) SqlSessionFactory (セッション ファクトリ): MyBatis のキー オブジェクト。単一のデータベース マッピング関係のコンパイルされたメモリ イメージです。SqlSessionFactory オブジェクトのインスタンスは、SqlSessionFactoryBuilder オブジェクト クラスを通じて取得できます。

6) SqlSessionFactoryBuilder ビルダー: プロパティ構成、エイリアス構成、インターセプター構成、データ ソースおよびトランザクション マネージャーなどを含む構成ファイルを解析するために使用されます。これらのファイルは、XML 構成ファイルまたは事前定義された構成インスタンスから構築できます。

4.MyBatisの起動手順

MyBatis は使い方が簡単ですが、高度にカプセル化されたフレームワークであるため、MyBatis の起動および実行プロセスに精通している必要があります。具体的なワークフローを図に示します。

ここに画像の説明を挿入します

1) Mapper で設定した SQL マッピング ファイル、またはアノテーションの関連する SQL コンテンツをロードします。

2) セッションファクトリーを作成します。MyBatis は、設定ファイルのデータ ソース情報を読み取ってセッション ファクトリ (SqlSessionFactory) を構築します。

3) セッションを作成します。MyBatis は、セッション ファクトリを通じてセッション オブジェクト (SqlSession) を作成できます。セッション オブジェクトは、データベース操作を追加、削除、変更、クエリするためのメソッドを含むインターフェイスです。

4) エグゼキューターを作成します。セッション オブジェクト自体はデータベースを直接操作できないため、データベース エグゼキューター (Executor) と呼ばれるインターフェイスを使用して操作の実行を支援します。

5) SQL オブジェクトをカプセル化します。このステップでは、エグゼキューターは、処理対象の SQL 情報をオブジェクト (MappedStatement) にカプセル化します。このオブジェクトには、SQL ステートメント、入力パラメーターのマッピング情報 (Java 単純型、HashMap または POJO)、および出力結果のマッピング情報が含まれます。

6) データベースを操作します。エグゼキュータと SQL 情報カプセル化オブジェクトを取得したら、それらを使用してデータベースにアクセスし、最終的に操作結果を返してプロセスを終了します。

要約すると、MyBatis には主にSqlSessionFactory と Mapper という 2 つのコア コンポーネントがあります。SqlSessionFactory はデータベース セッションの作成を担当し、Mapper は主に SQL マッピングを提供します。

おすすめ

転載: blog.csdn.net/weixin_45627039/article/details/132467111