Package org.miaixz.bus.pager
Class Page<E>
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
java.util.ArrayList<E>
org.miaixz.bus.pager.Page<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:
-
Nested Class Summary
Nested Classes -
Field Summary
Fields inherited from class java.util.AbstractList
modCount -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanasyncCount(boolean asyncCount) 异步count查询boundSqlInterceptor(BoundSqlHandler boundSqlHandler) 设置 BoundSql 拦截器voidclose()是否执行count查询countColumn(String columnName) 指定 count 查询列不使用异步count查询long<E> Page<E> doSelectPage(Querying select) <E> Paginating<E> doSelectPageInfo(Querying select) <E> Serialize<E> doSelectPageSerializable(Querying select) 使用异步count查询longintintgetPages()intlonglonggetTotal()booleanisCount()booleanbooleankeepOrderBy(boolean keepOrderBy) 转换count查询时保留查询的 order by 排序booleankeepSubSelectOrderBy(boolean keepSubSelectOrderBy) 转换count查询时保留子查询的 order by 排序pageNo(int pageNo) 设置页码pageSize(int pageSize) 设置页面大小pageSizeZero(Boolean pageSizeZero) 当设置为true的时候,如果pagesize设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果reasonable(Boolean reasonable) 设置合理化voidsetAsyncCount(Boolean asyncCount) voidsetBoundSqlInterceptor(BoundSqlHandler boundSqlHandler) setCount(boolean count) voidsetCountColumn(String countColumn) voidsetDialectClass(String dialectClass) setEndRow(long endRow) setKeepOrderBy(Boolean keepOrderBy) voidsetKeepSubSelectOrderBy(Boolean keepSubSelectOrderBy) <E> Page<E> setOrderBy(String orderBy) 设置排序字段,增加 SQL 注入校验,如果需要在 order by 使用函数,可以使用setUnsafeOrderBy(String)方法voidsetOrderByOnly(boolean orderByOnly) setPageNo(int pageNo) setPages(int pages) setPageSize(int pageSize) setPageSizeZero(Boolean pageSizeZero) setReasonable(Boolean reasonable) setStartRow(long startRow) voidsetTotal(long total) <E> Page<E> setUnsafeOrderBy(String orderBy) 不安全的设置排序方法,如果从前端接收参数,请自行做好注入校验。<T> Paginating<T> toPageInfo(Page.Function<E, T> function) 数据对象转换<T> Serialize<T> toPageSerializable(Page.Function<E, T> function) 数据对象转换toString()指定使用的分页实现,如果自己使用的很频繁,建议自己增加一层封装再使用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) -
Page
public Page(int pageNo, int pageSize, boolean count) -
Page
public Page(int[] rowBounds, boolean count) - Parameters:
rowBounds- 分页对象count- 总数int[] rowBounds 0 : offset 1 : limit
-
-
Method Details
-
getStackTrace
-
getResult
-
getPages
public int getPages() -
setPages
-
getEndRow
public long getEndRow() -
setEndRow
-
getPageNo
public int getPageNo() -
setPageNo
-
getPageSize
public int getPageSize() -
setPageSize
-
getStartRow
public long getStartRow() -
setStartRow
-
getTotal
public long getTotal() -
setTotal
public void setTotal(long total) -
getReasonable
-
setReasonable
-
getPageSizeZero
-
setPageSizeZero
-
getOrderBy
-
setOrderBy
设置排序字段,增加 SQL 注入校验,如果需要在 order by 使用函数,可以使用setUnsafeOrderBy(String)方法- Parameters:
orderBy- 排序字段
-
setUnsafeOrderBy
不安全的设置排序方法,如果从前端接收参数,请自行做好注入校验。请不要故意使用该方法注入然后提交漏洞!!!
- Parameters:
orderBy- 排序字段
-
isOrderByOnly
public boolean isOrderByOnly() -
setOrderByOnly
public void setOrderByOnly(boolean orderByOnly) -
getDialectClass
-
setDialectClass
-
getKeepOrderBy
-
setKeepOrderBy
-
getKeepSubSelectOrderBy
-
setKeepSubSelectOrderBy
-
getAsyncCount
-
setAsyncCount
-
using
指定使用的分页实现,如果自己使用的很频繁,建议自己增加一层封装再使用- Parameters:
dialect- 分页实现类,可以使用PageAutoDialect类中注册的别名,例如 "mysql", "oracle"- Returns:
- the object
-
isCount
public boolean isCount() -
setCount
-
pageNo
设置页码- Parameters:
pageNo- 页码- Returns:
- 结果
-
pageSize
设置页面大小- Parameters:
pageSize- 分页大小- Returns:
- 结果
-
count
是否执行count查询- Parameters:
count- 统计- Returns:
- 结果
-
reasonable
设置合理化- Parameters:
reasonable- 合理化- Returns:
- 结果
-
pageSizeZero
当设置为true的时候,如果pagesize设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果- Parameters:
pageSizeZero- 分页大小- Returns:
- 结果
-
boundSqlInterceptor
设置 BoundSql 拦截器- Parameters:
boundSqlHandler- 分页拦截器- Returns:
- 结果
-
countColumn
指定 count 查询列- Parameters:
columnName- 列名- Returns:
- 结果
-
keepOrderBy
转换count查询时保留查询的 order by 排序- Parameters:
keepOrderBy-- Returns:
-
keepOrderBy
public boolean keepOrderBy() -
keepSubSelectOrderBy
转换count查询时保留子查询的 order by 排序- Parameters:
keepSubSelectOrderBy-- Returns:
-
keepSubSelectOrderBy
public boolean keepSubSelectOrderBy() -
asyncCount
异步count查询- Parameters:
asyncCount-- Returns:
-
enableAsyncCount
使用异步count查询- Returns:
-
disableAsyncCount
不使用异步count查询- Returns:
-
asyncCount
public boolean asyncCount() -
toPageInfo
-
toPageInfo
数据对象转换- Type Parameters:
T- 泛型对象- Parameters:
function- 函数- Returns:
- 分页属性
-
toPageSerializable
-
toPageSerializable
数据对象转换- Type Parameters:
T- 泛型对象- Parameters:
function- 函数- Returns:
- 分页属性
-
doSelectPage
-
doSelectPageInfo
-
doSelectPageSerializable
-
doCount
-
getCountColumn
-
setCountColumn
-
getBoundSqlInterceptor
-
setBoundSqlInterceptor
-
toString
- Overrides:
toStringin classAbstractCollection<E>
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable
-