MyBatisPlusのページネーションプラグインであるIPageの使用例を紹介します。
MyBatis Plusは、MyBatisを強化する優れたツールであり、多くの実用的な機能を提供しています。その中には、ページング機能も含まれています。ページング検索とは、大量のデータを検索する際に、データを複数のページに分割して検索することで、データの転送を減らし、検索効率を向上させる機能です。
MyBatis Plusでは、ページング検索にはIPageインターフェースが使用されます。IPageインターフェースは、MyBatis Plusが提供するページングプラグインであり、ページング検索に関連するメソッドとプロパティが含まれています。以下はIPageを使用したサンプルコードです。
- 最初に、ページネーション検索のメソッドを定義する必要があります。次のように:
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public IPage<User> getUserListByPage(int pageNum, int pageSize) {
// 创建分页对象
IPage<User> page = new Page<>(pageNum, pageSize);
// 调用MyBatis Plus的分页查询方法
IPage<User> userPage = baseMapper.selectPage(page, null);
// 返回查询结果
return userPage;
}
}
- 上記のコードでは、まず、ページ数を表すpageNumと1ページに表示するレコード数を表すpageSizeでページオブジェクトIPage page = new Page<>(pageNum, pageSize)を作成します。その後、MyBatis PlusのページングクエリメソッドbaseMapper.selectPage(page, null)を呼び出し、ページオブジェクトとクエリ条件をパラメータとして渡します。最後に、クエリ結果を返します。
- getUserListByPage(pageNum, pageSize)メソッドを呼び出すことで、ページング検索を実行できます。getPageNumとpageSizeを使用してください。
@Autowired
private UserService userService;
@GetMapping("/users")
public Result getUserListByPage(@RequestParam("pageNum") int pageNum, @RequestParam("pageSize") int pageSize) {
IPage<User> userPage = userService.getUserListByPage(pageNum, pageSize);
return Result.success(userPage);
}
上記のコードでは、userService.getUserListByPage(pageNum, pageSize)メソッドを呼び出して、ページング検索結果を取得し、結果を返します。
上記のサンプルコードを見れば、IPageインターフェースを使用したページングクエリの実装は非常に簡単であることがわかります。単にページングオブジェクトを作成し、MyBatis Plusが提供するページングクエリメソッドを呼び出すだけです。さらに、IPageは他の便利なメソッドも提供しており、例えば総レコード数や総ページ数を取得するなど、実際のニーズに応じて利用することができます。