java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
java.util.ArrayList<E>
org.miaixz.bus.pager.Page<E>
- Type Parameters:
E- 分页数据元素的类型
- All Implemented Interfaces:
Closeable,Serializable,AutoCloseable,Cloneable,Iterable<E>,Collection<E>,List<E>,RandomAccess,SequencedCollection<E>
MyBatis分页对象,支持分页查询及结果集管理。
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Field Summary
Fields inherited from class java.util.AbstractList
modCount -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean检查是否启用异步count查询。asyncCount(boolean asyncCount) 设置是否启用异步count查询。boundSqlInterceptor(BoundSqlBuilder boundSqlHandler) 设置BoundSql拦截器。voidclose()关闭Page对象,清理分页上下文。设置是否执行count查询。countColumn(String columnName) 指定count查询列。禁用异步count查询。long执行count查询。<E> Page<E> doSelectPage(Querying select) 执行分页查询。<E> Paginating<E> doSelectPageInfo(Querying select) 执行分页查询并返回Paginating对象。<E> Serialize<E> doSelectPageSerializable(Querying select) 执行分页查询并返回Serialize对象。启用异步count查询。获取是否启用异步count查询。获取BoundSql拦截器。获取count查询列名。获取分页实现类。long获取末行位置。获取是否保留count查询的order by排序。获取是否保留子查询的order by排序。获取排序字段。int获取当前页码。intgetPages()获取总页数。int获取页面大小。获取pageSizeZero开关状态。获取分页合理化开关状态。获取分页结果集。获取创建Page对象的堆栈信息。long获取起始行位置。longgetTotal()获取总记录数。booleanisCount()是否执行count查询。boolean是否仅增加排序。boolean检查是否保留count查询的order by排序。keepOrderBy(boolean keepOrderBy) 设置是否保留count查询的order by排序。boolean检查是否保留子查询的order by排序。keepSubSelectOrderBy(boolean keepSubSelectOrderBy) 设置是否保留子查询的order by排序。pageNo(int pageNo) 设置页码。pageSize(int pageSize) 设置页面大小。pageSizeZero(Boolean pageSizeZero) 设置pageSizeZero开关。reasonable(Boolean reasonable) 设置分页合理化开关。voidsetAsyncCount(Boolean asyncCount) 设置是否启用异步count查询。voidsetBoundSqlInterceptor(BoundSqlBuilder boundSqlHandler) 设置BoundSql拦截器。setCount(boolean count) 设置是否执行count查询。voidsetCountColumn(String countColumn) 设置count查询列名,包含SQL注入校验。voidsetDialectClass(String dialectClass) 设置分页实现类。setEndRow(long endRow) 设置末行位置。setKeepOrderBy(Boolean keepOrderBy) 设置是否保留count查询的order by排序。voidsetKeepSubSelectOrderBy(Boolean keepSubSelectOrderBy) 设置是否保留子查询的order by排序。<E> Page<E> setOrderBy(String orderBy) 设置排序字段。voidsetOrderByOnly(boolean orderByOnly) 设置是否仅增加排序。setPageNo(int pageNo) 设置页码,支持合理化处理。setPages(int pages) 设置总页数。setPageSize(int pageSize) 设置页面大小。setPageSizeZero(Boolean pageSizeZero) 设置pageSizeZero开关。setReasonable(Boolean reasonable) 设置分页合理化开关。setStartRow(long startRow) 设置起始行位置。voidsetTotal(long total) 设置总记录数并计算总页数。<E> Page<E> setUnsafeOrderBy(String orderBy) 不安全设置排序字段,需自行确保无SQL注入风险。转换为Paginating对象。<T> Paginating<T> toPageInfo(org.miaixz.bus.core.center.function.FunctionX<E, T> function) 转换分页数据并返回Paginating对象。转换为Serialize对象。<T> Serialize<T> toPageSerializable(org.miaixz.bus.core.center.function.FunctionX<E, T> function) 转换分页数据并返回Serialize对象。toString()返回Page对象的字符串表示。指定使用的分页实现。Methods inherited from class java.util.ArrayList
add, add, addAll, addAll, addFirst, addLast, clear, clone, contains, ensureCapacity, equals, forEach, get, getFirst, getLast, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeFirst, removeIf, removeLast, removeRange, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray, trimToSizeMethods inherited from class java.util.AbstractCollection
containsAllMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Collection
parallelStream, stream, toArrayMethods inherited from interface java.util.List
containsAll, reversed
-
Constructor Details
-
Page
public Page()默认构造函数。 -
Page
public Page(int pageNo, int pageSize) 构造函数,指定页码和页面大小。- Parameters:
pageNo- 页码(从1开始)pageSize- 页面大小
-
Page
public Page(int pageNo, int pageSize, boolean count) 构造函数,指定页码、页面大小和是否执行count查询。- Parameters:
pageNo- 页码(从1开始)pageSize- 页面大小count- 是否执行count查询
-
Page
public Page(int[] rowBounds, boolean count) 构造函数,基于行范围分页。- Parameters:
rowBounds- 行范围数组,0: offset, 1: limitcount- 是否执行count查询
-
-
Method Details
-
getStackTrace
获取创建Page对象的堆栈信息。- Returns:
- 堆栈信息
-
getResult
获取分页结果集。- Returns:
- 分页数据列表
-
getPages
public int getPages()获取总页数。- Returns:
- 总页数
-
setPages
设置总页数。- Parameters:
pages- 总页数- Returns:
- 当前Page对象
-
getEndRow
public long getEndRow()获取末行位置。- Returns:
- 末行位置
-
setEndRow
设置末行位置。- Parameters:
endRow- 末行位置- Returns:
- 当前Page对象
-
getPageNo
public int getPageNo()获取当前页码。- Returns:
- 当前页码
-
setPageNo
设置页码,支持合理化处理。- Parameters:
pageNo- 页码- Returns:
- 当前Page对象
-
getPageSize
public int getPageSize()获取页面大小。- Returns:
- 页面大小
-
setPageSize
设置页面大小。- Parameters:
pageSize- 页面大小- Returns:
- 当前Page对象
-
getStartRow
public long getStartRow()获取起始行位置。- Returns:
- 起始行位置
-
setStartRow
设置起始行位置。- Parameters:
startRow- 起始行位置- Returns:
- 当前Page对象
-
getTotal
public long getTotal()获取总记录数。- Returns:
- 总记录数
-
setTotal
public void setTotal(long total) 设置总记录数并计算总页数。- Parameters:
total- 总记录数
-
getReasonable
获取分页合理化开关状态。- Returns:
- 合理化开关状态
-
setReasonable
设置分页合理化开关。- Parameters:
reasonable- 合理化开关- Returns:
- 当前Page对象
-
getPageSizeZero
获取pageSizeZero开关状态。- Returns:
- pageSizeZero开关状态
-
setPageSizeZero
设置pageSizeZero开关。- Parameters:
pageSizeZero- 当为true时,若pageSize为0则返回全部结果- Returns:
- 当前Page对象
-
getOrderBy
获取排序字段。- Returns:
- 排序字段
-
setOrderBy
设置排序字段。- Type Parameters:
E- 分页数据元素类型- Parameters:
orderBy- 排序字段- Returns:
- 当前Page对象
-
setUnsafeOrderBy
不安全设置排序字段,需自行确保无SQL注入风险。- Type Parameters:
E- 分页数据元素类型- Parameters:
orderBy- 排序字段- Returns:
- 当前Page对象
-
isOrderByOnly
public boolean isOrderByOnly()是否仅增加排序。- Returns:
- 是否仅增加排序
-
setOrderByOnly
public void setOrderByOnly(boolean orderByOnly) 设置是否仅增加排序。- Parameters:
orderByOnly- 是否仅增加排序
-
getDialectClass
获取分页实现类。- Returns:
- 分页实现类
-
setDialectClass
设置分页实现类。- Parameters:
dialectClass- 分页实现类
-
getKeepOrderBy
获取是否保留count查询的order by排序。- Returns:
- 是否保留order by排序
-
setKeepOrderBy
设置是否保留count查询的order by排序。- Parameters:
keepOrderBy- 是否保留order by排序- Returns:
- 当前Page对象
-
getKeepSubSelectOrderBy
获取是否保留子查询的order by排序。- Returns:
- 是否保留子查询的order by排序
-
setKeepSubSelectOrderBy
设置是否保留子查询的order by排序。- Parameters:
keepSubSelectOrderBy- 是否保留子查询的order by排序
-
getAsyncCount
获取是否启用异步count查询。- Returns:
- 是否启用异步count查询
-
setAsyncCount
设置是否启用异步count查询。- Parameters:
asyncCount- 是否启用异步count查询
-
using
指定使用的分页实现。- Parameters:
dialect- 分页实现类,可使用PageAutoDialect注册的别名,如"mysql"、"oracle"- Returns:
- 当前Page对象
-
isCount
public boolean isCount()是否执行count查询。- Returns:
- 是否执行count查询
-
setCount
设置是否执行count查询。- Parameters:
count- 是否执行count查询- Returns:
- 当前Page对象
-
pageNo
设置页码。- Parameters:
pageNo- 页码- Returns:
- 当前Page对象
-
pageSize
设置页面大小。- Parameters:
pageSize- 分页大小- Returns:
- 当前Page对象
-
count
设置是否执行count查询。- Parameters:
count- 是否执行count查询- Returns:
- 当前Page对象
-
reasonable
设置分页合理化开关。- Parameters:
reasonable- 分页合理化开关- Returns:
- 当前Page对象
-
pageSizeZero
设置pageSizeZero开关。- Parameters:
pageSizeZero- 当为true时,若pageSize为0则返回全部结果- Returns:
- 当前Page对象
-
boundSqlInterceptor
设置BoundSql拦截器。- Parameters:
boundSqlHandler- 分页拦截器- Returns:
- 当前Page对象
-
countColumn
指定count查询列。- Parameters:
columnName- 列名- Returns:
- 当前Page对象
-
keepOrderBy
设置是否保留count查询的order by排序。- Parameters:
keepOrderBy- 是否保留order by排序- Returns:
- 当前Page对象
-
keepOrderBy
public boolean keepOrderBy()检查是否保留count查询的order by排序。- Returns:
- 是否保留order by排序
-
keepSubSelectOrderBy
设置是否保留子查询的order by排序。- Parameters:
keepSubSelectOrderBy- 是否保留子查询的order by排序- Returns:
- 当前Page对象
-
keepSubSelectOrderBy
public boolean keepSubSelectOrderBy()检查是否保留子查询的order by排序。- Returns:
- 是否保留子查询的order by排序
-
asyncCount
设置是否启用异步count查询。- Parameters:
asyncCount- 是否启用异步count查询- Returns:
- 当前Page对象
-
enableAsyncCount
启用异步count查询。- Returns:
- 当前Page对象
-
disableAsyncCount
禁用异步count查询。- Returns:
- 当前Page对象
-
asyncCount
public boolean asyncCount()检查是否启用异步count查询。- Returns:
- 是否启用异步count查询
-
toPageInfo
转换为Paginating对象。- Returns:
- Paginating对象
-
toPageInfo
转换分页数据并返回Paginating对象。- Type Parameters:
T- 转换后数据类型- Parameters:
function- 数据转换函数- Returns:
- Paginating对象
-
toPageSerializable
转换为Serialize对象。- Returns:
- Serialize对象
-
toPageSerializable
public <T> Serialize<T> toPageSerializable(org.miaixz.bus.core.center.function.FunctionX<E, T> function) 转换分页数据并返回Serialize对象。- Type Parameters:
T- 转换后数据类型- Parameters:
function- 数据转换函数- Returns:
- Serialize对象
-
doSelectPage
执行分页查询。- Type Parameters:
E- 分页数据元素类型- Parameters:
select- 查询对象- Returns:
- 当前Page对象
-
doSelectPageInfo
执行分页查询并返回Paginating对象。- Type Parameters:
E- 分页数据元素类型- Parameters:
select- 查询对象- Returns:
- Paginating对象
-
doSelectPageSerializable
执行分页查询并返回Serialize对象。- Type Parameters:
E- 分页数据元素类型- Parameters:
select- 查询对象- Returns:
- Serialize对象
-
doCount
执行count查询。- Parameters:
select- 查询对象- Returns:
- 总记录数
-
getCountColumn
获取count查询列名。- Returns:
- count查询列名
-
setCountColumn
设置count查询列名,包含SQL注入校验。- Parameters:
countColumn- 列名
-
getBoundSqlInterceptor
获取BoundSql拦截器。- Returns:
- BoundSql拦截器
-
setBoundSqlInterceptor
设置BoundSql拦截器。- Parameters:
boundSqlHandler- BoundSql拦截器
-
toString
返回Page对象的字符串表示。- Overrides:
toStringin classAbstractCollection<E>- Returns:
- 字符串表示
-
close
public void close()关闭Page对象,清理分页上下文。- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable
-