Mybasticの概要
読者の皆様に情報技術に関する情報をお届けするシリーズに引き続き、本日はNALのSE Duy Truong氏がMyBatisに関する概要記事をお届けします。Mybasticとは何?Mybasticの特色、Mybatisのメリットと性能についてお答えします。
読者の皆様に情報技術に関する情報をお届けするシリーズに引き続き、本日はNALのSE Duy Truong氏がMyBatisに関する概要記事をお届けします。Mybasticとは何?Mybasticの特色、Mybatisのメリットと性能についてお答えします。
①Mybasticとは何❓
MyBatisは、オープンソースのフレームワークです。JDBCのデータベースへの接続を簡素化するために作成されました。た。さらに、データベース操作を容易にするAPIも提供しています。
②Mybasticの特徴
シンプルさー MyBatisは広く使用されており、今日では最もシンプルなパーシステンスフレームワークの1つと見なされています。
迅速な開発ーMyBatisは、そのシンプルさと使いやすさにより、アプリケーション開発を高速化することができます。
移植性 (Portability)ー MyBatisは、Java、Ruby、C#などのほぼすべての言語またはプラットフォームにインストールすることができます。
独立したコミュニケーション ー MyBatisは、データベースに依存しないインターフェイスとAPIを提供します。
オープンソース- MyBatisは無料のオープンソースソフトウェアです。
③MyBatisのメリット
ーJDBCコードを書くのが少なくなる。例えばプロジェクトがOracleからPostgresにデータベースを変換する必要がある場合、ソースはJDBCを使用して、ソースの山を開いて、「+」でStringを追加すると、それを見て、これ以上いらないと思ったとします。
ー理解しやすく、使いやすいSQLとJavaをしっかりと理解したら、MyBatisの使い方はとても簡単です。膨大な量のドキュメントを除けば、新たに必要な知識はごくわずかです。
– Springと Guice Frameworkでの統合のしやすさ。Springのプロジェクトは通常、Hibernateで使用するために「バンドル」されていますが、EclipseとIntelliJはどちらも、プラグインとして「この生意気な鳥」のインストールをサポートしています。jarもダウンロードファイルもなく、非常に便利です。さらに、バージョン間の変更はそれほど難しくありません。
-クエリー(高性能):キャッシュとポーリング接続メカニズムを持つ MyBatisはJDBCよりも高いクエリパフォーマンスを実現します。ただし、初めてSELECTを実行する場合、JDBCは競合が見つからず、SELECTが毎回データベースを呼び出さなければならないため、当然ながらキャッシュから結果をフェッチすることはできないため、それだけでミスしてしまいます。
-ORMサポート:MyBatisは、ORMツールに似た機能を多くをサポートしています。例としては、遅延読み込み、ジョインフェッチ 、ランタイムコードの生成、および継承などがあります。
MyBatisのパフォーマンス
接続ポーリングに対応
ポーリングについてご存じない方は、httpポーリングと接続プールに関する記事を参照してください。通常、データベースへの接続を開こうとするリクエストのたびに、別の接続が作成されます。Mybatisを使用する場合、ポーリング機構(接続が作成されて使用された後は閉じず、次回再利用のために接続プールに残り、タイムアウトが終了したときにのみ実際に閉じられます。ポーリングを利用することで、接続の初期化コストを大幅に削減し、アプリケーションのパフォーマンスを向上させることができます。
Mybatisは、ポーリングを使用して、データベース接続を開始するコストを節約しています。
MyBatisのポーリング構成は比較的簡単です。 dataSourceタイプは、type = “POOLED”を設定するだけです。
-重複するクエリにはキャッシュを使用する。
MyBatisには、SQLクエリの結果をSqlSesssionレベルでキャッシュするメカニズムがあります。つまり、キャッシュにマッピングされている選択クエリをコールバックすると、Mybatisはデータベース内でクエリを実行しなくなり、キャッシュから直接結果を取得します。
次の例を見てみましょう。
その際、MybatisはfirstSelectWithCacheのみを実行します。しかし、SQL1と同じSQL文で、同じsqlsession内の2番目のSQL文になると、キャッシュから直接結果を取得します。これは小さなことですが、データを複数回、重複してクエリを行う必要があるアプリケーションの場合、Mybatisを使用することでパフォーマンスが大幅に向上します。
すべてのクエリの結果はキャッシュに保存されます。 insert/ update/ delete.を使う場合、 トランザクションを終了します(またはautoCommit = trueで構成されたクエリの終了時)。
さらに詳しく説明すると、Mybatisは2層のキャッシュをサポートしています。 1つ目はセッションキャッシュ、2つ目はグローバルキャッシュです。
-プロキシを使用しない
MyBatis はプロキシを多用しており、プロキシを多用している他の ORM フレームワークと比較して、はるかに優れたパフォーマンスを発揮します。
④MyBatisとHibernateの違い
-それを疑問視する人はたくさんいるでしょう。 MyBatisとHibernateはフレームワークが異なり、いつそれぞれを使用するのでしょうか。
まず、MyBatisとHibernateの違いです。
MyBatis:
+MyBatisの方がシンプルでコンパクト。
+MyBatisはより柔軟性があり、開発時間が短縮される。
+MyBatisは、依存データベースであるSQLを使用する。
+ MyBatisはJDBC APIのResultSetをPOJOオブジェクトにマッピングするので、テーブル構造を気にする必要がない。
+MyBatisで保存されたプロシージャをより簡単に使用できる。
Hibernate:
+HibernateはSQLを生成するので、SQLの作成に時間を無駄にする必要がない。
+Hibernateは非常にスケーラブルで、高度なキャッシュを提供する。
+Hibernateは、データベースから比較的独立しているHQLを使用するため、データベースをHibernateに変換するのがより簡単になる。
+Hibernateは、Java POJOオブジェクトをテーブルにマップする。
+Hibernateで保存されたプロシージャを使用することはより困難。
-MyBatisをいつ使用する場合
+独自のSQLを作成したい、メンテナンスをしたいとお考えの方。
+環境は、リレーショナルデータモデルによって駆動される。
+既存の複雑なスキーマで作業する必要がある。
いつHibernateを使用するか
環境がオブジェクトモデルによって方向付けられており、SQLを自動的に生成する必要がある場合は、Hibernateを使用する。
⑤MyBatisのセットアップと使用法
手動インストール:
MyBatisの最新バージョンをダウンロードこちら:
http://www.java2s.com/Code/Jar/m/Downloadmybatis302jar.htm
mysqlconnectorの最新バージョンをダウンロードこちら
ダウンロードしたファイルを.jarファイルに抽出し、適切なディレクトリに配置する。
抽出されたファイルのCLASSPATHを設定する。
Mavenを使用したセットアップ
MyBatisの使い方
+XMLファイルで使用
Anotationを使用する
引用: https://media.nal.vn/mybatis-overview