Class Page<E>

All Implemented Interfaces:
Closeable, Serializable, AutoCloseable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess

public class Page<E> extends ArrayList<E> implements Closeable
Mybatis - 分页对象
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • Page

      public Page()
    • Page

      public Page(int pageNo, int pageSize)
    • Page

      public Page(int pageNo, int pageSize, boolean count)
    • Page

      public Page(int[] rowBounds, boolean count)
      Parameters:
      rowBounds - 分页对象
      count - 总数
  • Method Details

    • getResult

      public List<E> getResult()
    • getPages

      public int getPages()
    • setPages

      public Page<E> setPages(int pages)
    • getEndRow

      public long getEndRow()
    • setEndRow

      public Page<E> setEndRow(long endRow)
    • getPageNo

      public int getPageNo()
    • setPageNo

      public Page<E> setPageNo(int pageNo)
    • getPageSize

      public int getPageSize()
    • setPageSize

      public Page<E> setPageSize(int pageSize)
    • getStartRow

      public long getStartRow()
    • setStartRow

      public Page<E> setStartRow(long startRow)
    • getTotal

      public long getTotal()
    • setTotal

      public void setTotal(long total)
    • getReasonable

      public Boolean getReasonable()
    • setReasonable

      public Page<E> setReasonable(Boolean reasonable)
    • getPageSizeZero

      public Boolean getPageSizeZero()
    • setPageSizeZero

      public Page<E> setPageSizeZero(Boolean pageSizeZero)
    • getOrderBy

      public String getOrderBy()
    • setOrderBy

      public <E> Page<E> setOrderBy(String orderBy)
      设置排序字段,增加 SQL 注入校验,如果需要在 order by 使用函数,可以使用 setUnsafeOrderBy(String) 方法
      Parameters:
      orderBy - 排序字段
    • setUnsafeOrderBy

      public <E> Page<E> setUnsafeOrderBy(String orderBy)
      不安全的设置排序方法,如果从前端接收参数,请自行做好注入校验。

      请不要故意使用该方法注入然后提交漏洞!!!

      Parameters:
      orderBy - 排序字段
    • isOrderByOnly

      public boolean isOrderByOnly()
    • setOrderByOnly

      public void setOrderByOnly(boolean orderByOnly)
    • isCount

      public boolean isCount()
    • setCount

      public Page<E> setCount(boolean count)
    • pageNo

      public Page<E> pageNo(int pageNo)
      设置页码
      Parameters:
      pageNo - 页码
      Returns:
      结果
    • pageSize

      public Page<E> pageSize(int pageSize)
      设置页面大小
      Parameters:
      pageSize - 分页大小
      Returns:
      结果
    • count

      public Page<E> count(Boolean count)
      是否执行count查询
      Parameters:
      count - 统计
      Returns:
      结果
    • reasonable

      public Page<E> reasonable(Boolean reasonable)
      设置合理化
      Parameters:
      reasonable - 合理化
      Returns:
      结果
    • pageSizeZero

      public Page<E> pageSizeZero(Boolean pageSizeZero)
      当设置为true的时候,如果pagesize设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果
      Parameters:
      pageSizeZero - 分页大小
      Returns:
      结果
    • boundSqlInterceptor

      public Page<E> boundSqlInterceptor(BoundSqlHandler boundSqlHandler)
      设置 BoundSql 拦截器
      Parameters:
      boundSqlHandler - 分页拦截器
      Returns:
      结果
    • countColumn

      public Page<E> countColumn(String columnName)
      指定 count 查询列
      Parameters:
      columnName - 列名
      Returns:
      结果
    • toPageInfo

      public Paginating<E> toPageInfo()
    • toPageInfo

      public <T> Paginating<T> toPageInfo(Page.Function<E,T> function)
      数据对象转换
      Type Parameters:
      T - 泛型对象
      Parameters:
      function - 函数
      Returns:
      分页属性
    • toPageSerializable

      public Serialize<E> toPageSerializable()
    • toPageSerializable

      public <T> Serialize<T> toPageSerializable(Page.Function<E,T> function)
      数据对象转换
      Type Parameters:
      T - 泛型对象
      Parameters:
      function - 函数
      Returns:
      分页属性
    • doSelectPage

      public <E> Page<E> doSelectPage(Querying select)
    • doSelectPageInfo

      public <E> Paginating<E> doSelectPageInfo(Querying select)
    • doSelectPageSerializable

      public <E> Serialize<E> doSelectPageSerializable(Querying select)
    • doCount

      public long doCount(Querying select)
    • getCountColumn

      public String getCountColumn()
    • setCountColumn

      public void setCountColumn(String countColumn)
    • getBoundSqlInterceptor

      public BoundSqlHandler getBoundSqlInterceptor()
    • setBoundSqlInterceptor

      public void setBoundSqlInterceptor(BoundSqlHandler boundSqlHandler)
    • getDialectClass

      public String getDialectClass()
    • setDialectClass

      public void setDialectClass(String dialectClass)
    • using

      public Page<E> using(String dialect)
      指定使用的分页实现,如果自己使用的很频繁,建议自己增加一层封装再使用
      Parameters:
      dialect - 分页实现类,可以使用 PageAutoDialect 类中注册的别名,例如 "mysql", "oracle"
      Returns:
      this
    • toString

      public String toString()
      Overrides:
      toString in class AbstractCollection<E>
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable