Class PageContext

All Implemented Interfaces:
Dialect, BoundSqlHandler.Chain

public class PageContext extends PageMethod implements Dialect, BoundSqlHandler.Chain
Mybatis - 通用分页拦截器
Since:
Java 17+
Author:
Kimi Liu
  • Field Summary

    Fields inherited from class org.miaixz.bus.pager.builtin.PageMethod

    DEFAULT_COUNT, LOCAL_PAGE

    Fields inherited from interface org.miaixz.bus.pager.plugin.BoundSqlHandler.Chain

    DO_NOTHING
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    完成所有任务后
    boolean
    afterCount(long count, Object parameterObject, org.apache.ibatis.session.RowBounds rowBounds)
    执行完 count 查询后
    afterPage(List pageList, Object parameterObject, org.apache.ibatis.session.RowBounds rowBounds)
    分页查询后,处理分页结果,拦截器中直接 return 该方法的返回值
    <T> Future<T>
    执行异步 count 查询
    boolean
    beforeCount(org.apache.ibatis.mapping.MappedStatement ms, Object parameterObject, org.apache.ibatis.session.RowBounds rowBounds)
    执行分页前,返回 true 会进行 count 查询,false 会继续下面的 beforePage 判断
    boolean
    beforePage(org.apache.ibatis.mapping.MappedStatement ms, Object parameterObject, org.apache.ibatis.session.RowBounds rowBounds)
    执行分页前,返回 true 会进行分页查询,false 会返回默认查询结果
    org.apache.ibatis.mapping.BoundSql
    doBoundSql(BoundSqlHandler.Type type, org.apache.ibatis.mapping.BoundSql boundSql, org.apache.ibatis.cache.CacheKey cacheKey)
     
    getCountSql(org.apache.ibatis.mapping.MappedStatement ms, org.apache.ibatis.mapping.BoundSql boundSql, Object parameterObject, org.apache.ibatis.session.RowBounds rowBounds, org.apache.ibatis.cache.CacheKey countKey)
    生成 count 查询 sql
    getPageSql(String sql, Page page, org.apache.ibatis.session.RowBounds rowBounds, org.apache.ibatis.cache.CacheKey pageKey)
     
    getPageSql(org.apache.ibatis.mapping.MappedStatement ms, org.apache.ibatis.mapping.BoundSql boundSql, Object parameterObject, org.apache.ibatis.session.RowBounds rowBounds, org.apache.ibatis.cache.CacheKey pageKey)
    生成分页查询 sql
    boolean
    是否使用异步 count 查询,使用异步后不会根据返回的 count 数来判断是否有必要进行分页查询
    processParameterObject(org.apache.ibatis.mapping.MappedStatement ms, Object parameterObject, org.apache.ibatis.mapping.BoundSql boundSql, org.apache.ibatis.cache.CacheKey pageKey)
    处理查询参数对象
    void
    设置参数
    boolean
    skip(org.apache.ibatis.mapping.MappedStatement ms, Object parameterObject, org.apache.ibatis.session.RowBounds rowBounds)
    跳过 count 和 分页查询

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • PageContext

      public PageContext()
  • Method Details

    • skip

      public boolean skip(org.apache.ibatis.mapping.MappedStatement ms, Object parameterObject, org.apache.ibatis.session.RowBounds rowBounds)
      Description copied from interface: Dialect
      跳过 count 和 分页查询
      Specified by:
      skip in interface Dialect
      Parameters:
      ms - MappedStatement
      parameterObject - 方法参数
      rowBounds - 分页参数
      Returns:
      true 跳过,返回默认查询结果,false 执行分页查询
    • isAsyncCount

      public boolean isAsyncCount()
      Description copied from interface: Dialect
      是否使用异步 count 查询,使用异步后不会根据返回的 count 数来判断是否有必要进行分页查询
      Specified by:
      isAsyncCount in interface Dialect
      Returns:
      true 异步,false 同步
    • asyncCountTask

      public <T> Future<T> asyncCountTask(Callable<T> task)
      Description copied from interface: Dialect
      执行异步 count 查询
      Specified by:
      asyncCountTask in interface Dialect
      Type Parameters:
      T - 引用对象
      Parameters:
      task - 异步查询任务
      Returns:
      the object
    • beforeCount

      public boolean beforeCount(org.apache.ibatis.mapping.MappedStatement ms, Object parameterObject, org.apache.ibatis.session.RowBounds rowBounds)
      Description copied from interface: Dialect
      执行分页前,返回 true 会进行 count 查询,false 会继续下面的 beforePage 判断
      Specified by:
      beforeCount in interface Dialect
      Parameters:
      ms - MappedStatement
      parameterObject - 方法参数
      rowBounds - 分页参数
      Returns:
      the object
    • getCountSql

      public String getCountSql(org.apache.ibatis.mapping.MappedStatement ms, org.apache.ibatis.mapping.BoundSql boundSql, Object parameterObject, org.apache.ibatis.session.RowBounds rowBounds, org.apache.ibatis.cache.CacheKey countKey)
      Description copied from interface: Dialect
      生成 count 查询 sql
      Specified by:
      getCountSql in interface Dialect
      Parameters:
      ms - MappedStatement
      boundSql - 绑定 SQL 对象
      parameterObject - 方法参数
      rowBounds - 分页参数
      countKey - count 缓存 key
      Returns:
      the object
    • afterCount

      public boolean afterCount(long count, Object parameterObject, org.apache.ibatis.session.RowBounds rowBounds)
      Description copied from interface: Dialect
      执行完 count 查询后
      Specified by:
      afterCount in interface Dialect
      Parameters:
      count - 查询结果总数
      parameterObject - 接口参数
      rowBounds - 分页参数
      Returns:
      true 继续分页查询,false 直接返回
    • processParameterObject

      public Object processParameterObject(org.apache.ibatis.mapping.MappedStatement ms, Object parameterObject, org.apache.ibatis.mapping.BoundSql boundSql, org.apache.ibatis.cache.CacheKey pageKey)
      Description copied from interface: Dialect
      处理查询参数对象
      Specified by:
      processParameterObject in interface Dialect
      Parameters:
      ms - MappedStatement
      parameterObject - 方法参数
      boundSql - 绑定 SQL 对象
      pageKey - 分页缓存 key
      Returns:
      the object
    • beforePage

      public boolean beforePage(org.apache.ibatis.mapping.MappedStatement ms, Object parameterObject, org.apache.ibatis.session.RowBounds rowBounds)
      Description copied from interface: Dialect
      执行分页前,返回 true 会进行分页查询,false 会返回默认查询结果
      Specified by:
      beforePage in interface Dialect
      Parameters:
      ms - MappedStatement
      parameterObject - 方法参数
      rowBounds - 分页参数
      Returns:
      the object
    • getPageSql

      public String getPageSql(org.apache.ibatis.mapping.MappedStatement ms, org.apache.ibatis.mapping.BoundSql boundSql, Object parameterObject, org.apache.ibatis.session.RowBounds rowBounds, org.apache.ibatis.cache.CacheKey pageKey)
      Description copied from interface: Dialect
      生成分页查询 sql
      Specified by:
      getPageSql in interface Dialect
      Parameters:
      ms - MappedStatement
      boundSql - 绑定 SQL 对象
      parameterObject - 方法参数
      rowBounds - 分页参数
      pageKey - 分页缓存 key
      Returns:
      the object
    • getPageSql

      public String getPageSql(String sql, Page page, org.apache.ibatis.session.RowBounds rowBounds, org.apache.ibatis.cache.CacheKey pageKey)
    • afterPage

      public Object afterPage(List pageList, Object parameterObject, org.apache.ibatis.session.RowBounds rowBounds)
      Description copied from interface: Dialect
      分页查询后,处理分页结果,拦截器中直接 return 该方法的返回值
      Specified by:
      afterPage in interface Dialect
      Parameters:
      pageList - 分页查询结果
      parameterObject - 方法参数
      rowBounds - 分页参数
      Returns:
      the object
    • afterAll

      public void afterAll()
      Description copied from interface: Dialect
      完成所有任务后
      Specified by:
      afterAll in interface Dialect
    • doBoundSql

      public org.apache.ibatis.mapping.BoundSql doBoundSql(BoundSqlHandler.Type type, org.apache.ibatis.mapping.BoundSql boundSql, org.apache.ibatis.cache.CacheKey cacheKey)
      Specified by:
      doBoundSql in interface BoundSqlHandler.Chain
    • setProperties

      public void setProperties(Properties properties)
      Description copied from interface: Dialect
      设置参数
      Specified by:
      setProperties in interface Dialect
      Parameters:
      properties - 插件属性