MybatisとIbatisの違い:
1. MyBatisはインターフェイスバインディングを実装し、Ibatis2.xで<br />を使用する方が便利になります。XMLマッピングファイルがDAO実装クラスで対応するXMLマッピングファイルを指定する必要があります。
MyBatisは、DAOインターフェイスとXMLマッピングファイルのバインディングを実装し、インターフェイスの特定の実装を自動的に生成し、使いやすく、より便利にします。
これは、MyBatisの最も重要な改善であると言えます。
知らせ:
MyBatisはインターフェイスで直接注釈構成の使用をサポートしていますが、構成を簡素化することをサポートしていますが、構成を簡素化しますが、
ただし、XML構成方法を使用することを強くお勧めします。結局のところ、注釈の構成方法は制限されており、コードが侵襲的すぎます。 XML構成法を使用することによってのみ、mybatisの利点を反映できます
2。オブジェクト関係のマッピングの改善はより効率的です<br /> ibatis2.xを使用している多くの友人は、IbatisのXMLマッピングファイルを介してオブジェクト間の関係マッピングを実現しないと考えています。実際、Ibatis2.xは「ネッククエリ」を使用してクエリステートメントの直接アセンブリを介してオブジェクト間の関係を実現するため、それを行う必要はありません。その効果はDAOまたはサービスのカプセル化と同じです。
ただし、この方法には「n+1クエリの問題」があります。
要約すると、n+1クエリの問題は次のように発生する可能性があります。
?個別のSQLステートメントを実行して結果リスト(つまり+1)を取得します。
?返される各レコードについて、クエリステートメントを実行して、各ロード(つまり、n)の詳細を読み込みます。
この問題は、数百のSQLステートメントを実行する可能性があります。これは通常予想されません。
MyBatisでは、Ibatis2.xの「ネッククエリ」メソッドと互換性があることに加えて、文字sqlを介して必要なオブジェクトにクエリされたDTOオブジェクトを自動的にカプセル化するのと同等の直接的な「ネック結果」メソッドも提供します。
特定の実装方法については、MyBatis公式ユーザーマニュアルを自分で参照してください。ここで説明しないでください。
しかし、実際、この改善によってもたらされる利点は非常に限られています。この方法は、ページングを使用するときに機能しないため、またはネストされたオブジェクトの結果セットがページングを許可されていないためです。これは、MyBatisフレームワーク(org.apache.ibatis.executor.resultset.nestedResultseThandlerの34行)で明確に制限されており、実際のプロジェクトでページングが必要な場合がたくさんあります...
慎重に考えると、1対Manyマッピングが構成ファイルを介してページングすることはできません。この時点でクエリされたレコードの数は実際の返品オブジェクトのサイズに等しくないため、1対1のマッピングが許可されていない理由がわかりません。 1対1が1対1の特別なケースであり、フレームワークを設計するとき、この特別なケースに対処することは考慮されていないか、困難ではないためです。
3. MyBatisは、強力なOGNLベースの式を使用して、STRUTS2に精通している他の要素を排除するために<BR /> OGNL式に不慣れであるべきではありません。
MyBatisはOGNL式を使用して構成ファイルの複雑さを簡素化し、使用がより簡単です。
多分それはもっと心配しています
MyBatisはインターフェイスの結合を実装し、使用がより便利になります。
Ibatis/MyBatis 3には、新しい機能:注釈が提供されます。