`

自己写的分页实体类

    博客分类:
  • Java
 
阅读更多

public class Pager implements Serializable {

 

private static final long serialVersionUID = 2626338020642050199L;

 

/** 升序 */

public static final String ASC = "ASC";

/** 降序 */

public static final String DESC = "DESC";

/** 当前页码数,默认当前页为第一页*/

private int pageNo; 

/** 总页数 */

private int totalPage; 

/** 每页显示记录数,可选范围:1-100,不指定并且需要分页时默认为100. */

private int pageSize; 

/** 总记录数 */

private int totalCount;

/** 当前页记录数 */

private int count; 

/** 排序字段 */

private String sort; 

/** 排序类型(升序asc/降序desc,默认为升序) */

private String sortType = ASC;

 

//   jquery databale控件分页专用参数

/** 请求次数 */

private Integer draw;

/** 当前起始位置 */

private Integer start;

/** 页面显示记录数量 */

private Integer length;

/** search[value]: search输入框中的值,search[regex]搜索是否支持正则 */

private Map<String, String> search;

/** order[0][column]: 表示第几列需要排序,order[0][dir]: 排序方式ASC | DESC */

private List<Map<String, String>> order;

 

public Pager() {

setPageSize(100);

setPageNo(1);

}

 

 

/**

* 默认当前页为第一页

* @param pageSize 每页显示记录数

*/

public Pager(final int pageSize) {

setPageSize(pageSize);

setPageNo(1);

}

 

/**

* @param pageSize 每页显示记录数

* @param pageNo当前页码数

*/

public Pager(final int pageSize, final int pageNo) {

setPageSize(pageSize);

setPageNo(pageNo);

}

 

/**

* 获取当前页

* @return pageNo 当前页参数变量

*/

public int getPageNo() {

return pageNo;

}

 

/**

* 设置当前页

* @param pageNo 当前页参数变量

*/

public void setPageNo(final int pageNo) {

this.pageNo = pageNo;

if (pageNo < 1) {

this.pageNo = 1;

}

 

 

/**

* 获取每页显示记录数

* @return pageSize 每页显示记录数

*/

public int getPageSize() {

return pageSize;

}

 

/**

* 设置每页显示记录数,可选范围:1-100,不指定并且需要分页时默认为100。

* @param pageSize 每页显示记录数

*/

public void setPageSize(final int pageSize) {

this.pageSize = pageSize;

if (pageSize < 1) {

this.pageSize = 1;

}else if (pageSize>100) {

this.pageSize = 100;

}

}

 

/**

* 获取总记录数

* @return totalCount 总记录数

*/

public int getTotalCount() {

return totalCount;

}

 

/**

* 设置总记录数

* @param totalCount 总记录数

*/

public void setTotalCount(final int totalCount) {

this.totalCount = totalCount;

}

 

/**

* 获取当前页记录数

* @return count 当前页记录数

*/

public int getCount() {

count = pageSize;

int mod = totalCount % pageSize;

if (pageNo == this.getTotalPage() && mod > 0) {

count = mod;

}else if (pageNo> this.getTotalPage()) {

count = 0;

}

return count;

}

 

/**

* 获取总页数

* @return totalPage 总页数

*/

public int getTotalPage() {

if (totalCount < 0) {

totalPage = -1;

}

totalPage = totalCount / pageSize;

if (totalCount % pageSize > 0) {

totalPage++;

}

return totalPage;

}

 

/**

* 获取排序字段

* @return sort 排序字段

*/

public String getSort() {

return sort;

}

 

/**

* 设置排序字段

* @param sort 排序字段

*/

public void setSort(final String sort) {

this.sort = sort;

}

 

/**

* 获取排序类型(升序asc降序desc)

* @return sortType 排序类型(升序asc降序desc)

*/

public String getSortType() {

return sortType;

}

 

/**

* 设置排序类型(升序asc降序desc)

* @param sortType 排序类型(升序asc降序desc)

*/

public void setSortType(final String sortType) {

// 检查sortType字符串的合法值

String[] sortTypes = StringUtils.split(StringUtils.lowerCase(sortType),',');

for (String sortTypeStr : sortTypes) {

if (!StringUtils.equals(DESC, sortTypeStr) && !StringUtils.equals(ASC, sortTypeStr))

throw new IllegalArgumentException(String.format("Invalid SortType %S", sortTypeStr));

}

this.sortType = StringUtils.lowerCase(sortType);

}

 

/**

* 是否有下一页

* @return boolean 返回true表示有下页,反之没有

*/

public boolean isHasNext() {

return (pageNo + 1 <= getTotalPage());

}

 

/**

* 获取下一页码数

* @return int 页码数

*/

public int getNextPage() {

if (isHasNext())

return pageNo + 1;

else

return pageNo;

}

 

/**

* 是否有上一页

* @return boolean 返回true表示有上一页,反之没有

*/

public boolean isHasPre() {

return (pageNo - 1 >= 1);

}

 

/**

* 获取上一页码数

* @return int 上一页码数

*/

public int getPrePage() {

if (isHasPre())

return pageNo - 1;

else

return pageNo;

}

 

/**

* 获取请求次数

* @return draw 请求次数

*/

public Integer getDraw() {

return draw;

}

 

/**

* 设置请求次数

* @param draw 请求次数

*/

public void setDraw(Integer draw) {

this.draw = draw;

}

 

/**

* 获取当前起始位置

* @return start 当前起始位置

*/

public Integer getStart() {

return start;

}

 

/**

* 设置当前起始位置

* @param start 当前起始位置

*/

public void setStart(Integer start) {

this.start = start;

}

 

/**

* 获取页面显示记录数量

* @return length 页面显示记录数量

*/

public Integer getLength() {

return length;

}

 

/**

* 设置页面显示记录数量

* @param length 页面显示记录数量

*/

public void setLength(Integer length) {

this.length = length;

}

 

/**

* 获取搜索相关参数

* @return search

*/

public Map<String, String> getSearch() {

return search;

}

 

/**

* 设置搜索相关参数

* @param search

*/

public void setSearch(Map<String, String> search) {

this.search = search;

}

 

/**

* 获取排序相关参数

* @return order

*/

public List<Map<String, String>> getOrder() {

return order;

}

 

/**

* 设置排序相关参数

* @param order

*/

public void setOrder(List<Map<String, String>> order) {

this.order = order;

}

}

分享到:
评论

相关推荐

    Pager分页实体类

    公共的Pager分页实体类,封装一些常规方法,可直接使用。

    公共的Pager分页实体类

    "公共的Pager分页实体类"是一个设计用于简化分页操作的Java类,它封装了处理分页逻辑所需的一些基本功能,使得开发者能够快速集成到自己的项目中,而无需从头编写这些基础代码。 Pager类通常包含以下关键组成部分:...

    强大的分页实体类以及页面代码(注释详细)

    本资源提供了“强大的分页实体类(page.java)”和“分页页面代码(page.jsp)”,这两个文件旨在简化分页实现过程,通过详细注释确保开发者能够快速理解和应用。 首先,我们来详细了解一下`page.java`。这是一个...

    匹配实体类的实现了大部分功能分页 网页分页

    这里我们关注的标题是“匹配实体类的实现了大部分功能分页 网页分页”,描述中提到了使用了数据库MySQL以及Spring 3.0框架来实现这一功能。下面将详细讨论这些知识点。 1. 分页原理与实现: 分页通常由两个关键...

    用于jsp分页实体代码

    3. **分页实体类(PageUtil)**: `PageUtil` 类通常会包含以下几个属性: - `currentPage`:当前页数 - `pageSize`:每页的记录数 - `totalPage`:总页数,根据总记录数除以每页记录数计算得出,若有余数则加1 ...

    mybatis 分页自己写的一个分页

    实体类将用于接收和传递分页参数,例如: ```java public class Pagination { private int pageNum; // 开始页数 private int pageSize; // 每页数据量 // getters and setters } ``` 然后在Mapper接口中定义...

    C#数据实体类中如何给属性赋值

    ### C# 数据实体类中如何给属性赋值 在C#开发中,处理数据库查询结果时,经常需要将查询结果映射到实体类中。本文将详细介绍如何在C#的数据实体类中为属性赋值,特别是当从数据库中取出的是一个`DataSet`对象时。 ...

    最强大的JAVA分页类

    实体类 Method: private void page(); 给 Page 中的 param pageCount (总页数) 赋值 public List showPage(int pageSize,int page,ArrayList&lt;Object&gt; list) 得到当前分页的内容 public boolean ...

    Asp.net C#通用分页类

    ### Asp.net C#通用分页类 #### 概述 在Web开发中,特别是使用ASP.NET进行开发时,数据分页是一个常见的需求。合理的分页不仅能够提高用户体验,还能优化服务器资源的使用效率。然而,传统的分页方法通常较为复杂...

    struts写的分页

    3. **封装结果**:查询结果会被封装到一个JavaBean或者自定义的实体类集合中,以便在视图层展示。 4. **设置分页信息**:Action类还需要计算总页数,并将当前页、总页数、每页记录数等信息传递给ActionForm或直接...

    asp.net实体类生成工具

    3. **性能优化**:对于大数据量的表,可能需要手动调整实体类的属性,如使用懒加载、分页查询等策略来提高性能。 4. **安全考虑**:避免生成包含敏感信息的实体类,如密码明文等,应使用加密或哈希处理。 总的来说...

    自己写的万能分页

    这个方法的实现可能会涉及到动态生成HQL,根据实体类的属性来构建查询条件。 在实际应用中,我们可以扩展这些基础方法,例如添加排序功能,或者对查询结果进行额外的处理。为了使代码更易读和维护,建议将分页逻辑...

    SSH集成+分页抽象类+自定义标签 == 分页数据效果

    在实际项目中,`accpDB.rar`可能是一个包含数据库脚本或实体类的压缩包,用于创建和操作数据库表。`page.txt`可能记录了分页相关的配置或说明,而`效果图`则是展示最终分页效果的图片。`Page_Pro`可能是一个实现了...

    Oracle 生成实体类.rar

    - 数据访问性能:实体类在处理大量数据时可能会影响性能,需要考虑分页、缓存等策略。 - 更新和删除策略:需要设定适当的数据库操作策略,如乐观锁或悲观锁,以保证数据的一致性。 总之,"Oracle 生成C#实体类"的...

    数据层 万能实体类方法

    这样,无论实体类如何变化,我们只需要针对这个接口或基类编写操作,而无需为每个实体类单独写一套数据库操作代码。 例如,在C#中,我们可以定义一个`IBaseEntity`接口,包含以下方法: ```csharp public ...

    mybatis自动生成Java实体类和映射文件的自动生成类工具

    标题中的"mybatis自动生成Java实体类和映射文件的自动生成类工具"指的就是这样的一个辅助开发工具,它可以分析数据库表结构,并根据表信息自动生成对应的Java实体类和Mapper接口及其XML配置文件。 在Java开发中,...

    java中如何实现分页

    分页的基本思路:封装一个实体类,包含分页所需要的参数(图片最左边的内容),项目所有的实体类都可以去继承封装的这个实体类,然后再封装一个基本的mapper,包含基本的分页sql语句,前端请求数据时,需要传分页的...

    C#自动生成三层结构实体类

    根据sql server 数据库自动生成三层结构的实体类 生成DAL时可以选择企业库或非企业库模式,企业库用到的DLL已经附带在本资源中,DataRecordTable.cs放在生成后的Model中 如果选择非企业库,则需要用到MyData.cs文件,...

    分页工具类

    `Page.java`则可能是表示分页结果的实体类,包含以下属性: 1. **总记录数**(totalRecords):通过SQL COUNT(*) 获取,用于计算总页数。 2. **总页数**(totalPages):基于总记录数和每页记录数计算得出。 3. *...

    asp.net通用分页类

    在实际使用中,这个分页类可以作为一个独立的服务或者工具类,接收数据源(如SQL查询、EF实体查询等)和分页参数,返回分页后的数据和相关信息,例如当前页、总页数等。这样,无论在哪个页面需要分页,只需调用此...

Global site tag (gtag.js) - Google Analytics