Mybatis PlusでのIPageとPageの違いは何ですか?
MyBatis-Plusにおいて、IPageとPageはどちらもページング検索に使用されるインターフェースです。彼らの違いは、主に以下の点に現れています。
- 継承関係: IPageはPageの親インターフェースです。IPageは基本的なページングクエリのメソッドを定義しており、一方PageはIPageの実装クラスであり、具体的なページングクエリの実装を提供しています。
- イントロダクション:IPageはMyBatis-Plus 2.0バージョンより前のインターフェースであり、一方でPageはMyBatis-Plus 2.0バージョンで導入された新しいインターフェースです。2.0バージョン以降、PageインターフェースがIPageインターフェースの使用を置き換えています。
- ページングパラメータの転送:IPageインターフェースでは、@Param注釈を使用してページングパラメータを転送しますが、Pageインターフェースではメソッドの引数を直接使用してページングパラメータを転送します。このように、Pageインターフェースを使用すると、ページングパラメータをより簡潔で簡単に転送することができます。
- IPageインターフェースによるページ単位のクエリ実行は、List records = baseMapper.selectPage(page, queryWrapper).getRecords()によって行われます。これにより、検索結果を含むリストが返されます。一方、Pageインターフェースによるページ単位のクエリ実行は、IPage selectPage(IPage page, @Param(Constants.WRAPPER) Wrapper queryWrapper);メソッドによって行われ、検索結果およびページ情報を含むIPageオブジェクトが返されます。
総じて、IPageとPageはページング機能において基本的に同等ですが、使用方法やパラメータの受け渡しにはいくつかの違いがあります。MyBatis-Plus 2.0 バージョン以降では、Pageインターフェースを使用してページングクエリを行うことを推奨します。