永続化フレームワークのMybatisとMybatisPlusの比較

3477 ワード

MyBatis
MyBatisの前身はiBatisで、Clinton Beginが2001年に開始したオープンソースプロジェクトです.最初はコードソフトウェアの開発に重点を置き、その後javaベースの永続層フレームワークに発展した.Mybatisは優れた永続層フレームワークで、カスタムSQLクエリー、ストレージ・プロシージャ、高度なマッピングをサポートし、ほとんどのJDBCコードとパラメータの手動設定と結果セットの取得を排除します.MyBatisは、簡単なXMLまたは注釈を使用してマッピングおよび構成を行うことができ、パラメータを構成されたSQLにマッピングして最終的に実行されたSQL文として解析し、クエリー後にSQl結果セットをjavaオブジェクトにマッピングして返すことができます.MyBatisが提供する永続層フレームワークには、SQL Maps(Mapper)とData Access Objects(DAO)が含まれており、Hibernateに比べて自動化されたORMを提供しています.MyBatisの1次キャッシュはデフォルトで有効(ローカルキャッシュ)で制御されません.一般的にキャッシュとはMyBatisの2次キャッシュを指します
主に使用するラベルは次のとおりです.
1)、対応注記@Select 2)、対応注記@Update 3)、対応注記@Insert 4)、対応注記@Delete 5)、:ある条件によっては、1=1を避けるために使用できるかどうかによって、where条件であるかどうかによって、最初の条件パラメータが自動的に除去されるand 6)、:javaの条件に類似してifを判断し、ラベル7がない)、ラベル




8)、:リスト、SetなどのIterableインタフェースを配列、Map、または実装したオブジェクトを巡回できます.in、一括更新、一括挿入などを実現できます.9)、:マッピング結果セット10)、:マッピング結果タイプ、ただしjavaエンティティクラスまたはMap、Listなどのタイプ.
MyBatis-plus
MyBatis-plusはMyBatisの強化ツールで、MyBatisの基礎の上でただ強化して変えません.国内チームのトウモロコシ豆がMyBatisに基づいて開発した強化フレームワークで、効率を高めるためにいくつかの機能を拡張しています.Mybatis-Plusの導入は既存のMybatisフレームワークに影響を及ぼさず、MyBatis-plusはすべてのMybatisオリジナルの特性をサポートします.
1)依存が少ない:MybatisおよびMybatis-Springのみに依存する.2)損失が小さい:起動すると基本CURDが自動的に注入され、性能はほとんど損失がなく、直接対象に向かって操作する.3)予防Sql注入:Sql注入剥離器を内蔵し、効果的にSql注入攻撃を予防する.4)通用CRUD操作:通用Mapper、通用サービスを内蔵し、少量の配置だけで単表の大部分のCRUD操作を実現でき、より強い条件構築器があり、各種類の使用ニーズを満たす.5)多種の主キーポリシー:最大4種類の主キーポリシー(分布式ユニークIDジェネレータを含む)をサポートし、自由に配置でき、主キーの問題を完璧に解決する.6)ホットロードのサポート:Mapper対応のXMLはホットロードをサポートし、簡単なCRUD操作に対して、XML起動なしでもよい7)ActiveRecordのサポート:ActiveRecord形式呼び出しのサポート、エンティティークラスはModelクラスを継承するだけで基本的なCRUD操作を実現できる8)コード生成のサポート:採用コードまたはMavenプラグインはMapper、Model、Service、Controllerレイヤコード(カスタムファイルを生成し、重複コードの開発を避ける)、テンプレートエンジンのサポート、超多カスタム構成などがあります.9)カスタムグローバル汎用操作をサポート:グローバル汎用メソッド注入(Write once,use anywhere)をサポートする.10)キーワード自動エスケープをサポート:データベースキーワード(order、key...)自動エスケープをサポートし、キーワードをカスタマイズすることもできる.11)内蔵ページングカード:Mybatis物理ページングに基づいて、開発者は具体的な操作に関心を持つ必要はなく、プラグインを構成した後、ページングを書くのは普通のListクエリーと同じである.12)内蔵性能分析プラグイン:Sql文とその実行時間を出力することができ、テストの開発時にこの機能を有効にすることを提案し、遅いクエリを効果的に解決することができる.13)グローバルブロックプラグインを内蔵:全表delete、update操作インテリジェント分析遮断を提供し、誤操作を予防する.14)デフォルトでは、エンティティクラスのクラス名がデータベース内のテーブルを検索し、@Table Name(value="table 1")注釈を使用してテーブル名を指定し、@Table Idはテーブルのプライマリ・キーを指定します.フィールドがテーブル内のフィールド名と一致している場合は、注釈を付けません.
比較の違いは以下の通りです.
区別する
Mybatis Plusがスパナであれば、Mybatis Generatorはスパナを生産する工場です.通俗的に言えば——MyBatis:データベースを操作するフレームワークで、Mapperクラスを提供し、javaコードで削除・変更するデータベース操作をサポートし、毎回sql文を手書きで書く手間を省く.Mybatis Generator:Mybatisのために簡単な削除を自動的に生成し、sql文を調べるツールを変更し、大きなチケット時間を節約し、両者を組み合わせて使用し、開発速度が飛ぶほど速い.Mybatis Plus:国人チームトウモロコシはMybatisに基づいて開発されたフレームワークであり、Mybatisに基づいて多くの機能を拡張し、2018年に最も人気のある国産オープンソースソフトウェア5位を獲得した.もちろん、Mybatis Plus Generatorも付属している.同様にトウモロコシ開発であり、Mybatis Generatorよりも強力であり、サポート機能がより多く、自動的にEntity、Mapper、Service、コントローラなど.まとめ:データベースフレームワーク:Mybatis Plus>Mybatisコードジェネレータ:Mybatis Plus Generator>Mybatis Generator
区別2
Mybatis-PlusはMybatisの強化ツールで、Mybatisに基づいて強化されていますが、変更しません.Mybatis-Plusを使用すると、Mybatis-Plus固有の機能と、Mybatis固有の機能の両方を使用できます.Mybatis-Plus(以下MPと略す)は、開発を簡素化し、開発効率を向上させるために生まれたが、SQLのパフォーマンスモニタリング、楽観的なロック、分析の実行など、興味深いプラグインも提供されている.Mybatisはすでに私达にとても大きい便利さを提供しましたが、しかしそれはまだ足りないところがあって、実际には完璧なものは何もなくて、MPの存在は少しMybatisの不足を补うためです.Mybatisを使用すると、ビジネスロジックを書くたびにDAOレイヤにメソッドを書き、SQLに対応していることがわかります.簡単な条件クエリーでも、1つの条件を変更してもDAOレイヤにメソッドを追加しなければなりません.この問題に対してMPは良い解決策を提供しています.後で紹介します.また、MPのコードジェネレータも興味深いもので、多くの重複作業を避けることができます.次に、あなたのプロジェクトにMPを統合する方法を紹介します.