一、前言

由于 Mybatis 的 RowBound 是内存分页,效率低下。我们需要高效的物理分页。 PageHelper 是国人开发的广泛用于Mybatis 物理分页插件。
GitHub

二、实现逻辑

通过编写 Mybatis 插件,拦截 Executor#query() 方法完成

  • 查询总数(如有必要)。
  • 根据不同数据库类型改造 SQL 语句。

    2.1 核心代码

    QueryInterceptor.png