`

自己写的分页实体类

    博客分类:
  • 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分页实体类,封装一些常规方法,可直接使用。

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

    包含page.java分页实体类和page.jsp分页页面代码。 使用简单,注释非常详细,一看就懂。 只需把page.jsp导入需要分页的界面即可。 不需要再为每个需要分页的界面重新写分页代码。

    公共的Pager分页实体类

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

    用于jsp分页实体代码

    jsp分页时用到的实体类,帮助J2EE开发的开发者快速部署实体类,可作为帮助工具类多次重用

    mybatis 分页自己写的一个分页

    物理分页查询 只需要传 开始页数和每页多少条数据 到实体类 然后在sql语句中写分页参数就可以使用了

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

    网页分页效果,内部有数据库mysql,自己导入,用到spring3.0的框架

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

    数据实体类中如何给属性赋值.因为从数据库中取出来的是一个DataSet如果一个一个给数据实体类中的属性赋值显的非常的笨拙,而且我们的数据表多达100个.在网上搜索了下写出了个简单的方法,代码如下: 首先我们做个实体...

    最强大的JAVA分页类

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

    java中如何实现分页

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

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

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

    分页技术-vo

    分页试题类编写

    SpringBoot中使用Spring-data-jpa分页查询

    手动创建一个对应数据表的实体类,并在实体类上使用@Entity注解标记该类是一个实体类,@Table注解指定该实体类映射的数据表名。 创建Repository接口 创建一个Repository接口,继承自JpaRepository或者...

    多集合的分页

    多集合,的分页,或者说多来源的分页

    CodeSmith模版-生成C#增删改查(分页,主键)方法和存储过程

    1生成Model层的实体类的“MyModels.cst”文件:本文件根据数据库的字段生成实体类,实体类的 命名规则是:表名+Model。例如有表:Table1那么生成的实体类为:Table1Model。其中的住外键关 系没有做处理,请自行处理...

    sqlserver分页器

    使用方法:1、将该类导入实体类包中 2、在需要分页的地方创建该类对象,并使用构造方法将页码和排序字段,是否正序等传入(若id倒序则只传入页码即可) 3、传入mybitis中 在sql语句头部调用 ${pading.begin} 结尾...

    WinForm界面开发之“分页控件”

    耦合性低一些,例如我不想是基于存储过程的,因为我很多程序需要使用Access作为数据库,一般来说,我还希望有导出Excel数据的功能,还有打印预览功能,由于我的数据源表头,如实体类集合、表格内容绑定的时候,表头...

    javabean分页的例子

    javabean分页程序,适合初学jsp的朋友 &lt;br&gt;1、数据库表中有GoodsType表 2、新建TypeList.jsp页面 3、新建GoodsType的实体类 4、新建GoodsTypeDAO的操作类 5、在BusinessDelegate类中注册相应的方法...

    C#,asp.net操作mongodb实例,新增,修改,查询,分页查询,删除,基类封装,打开直接运行

    C#,asp.net操作mongodb实例,封装【新增,修改,查询,分页查询,删除,批量更新,批量删除,条件查找等】内有一个实体类,操作数据库封装类,日志类,web页面,vs打开直接运行

    基于hibernate实现的分页技术

    基于hibernate的分页开发技术,分页的实体类和分页的辅助类完成分页功能。

    SpringMVC+Mybatis+分页插件的实现

    自己最近搭建的一个SpringMVC+Mybatis的框架 属于无实体类的框架 并实现了Myabtis的自动分页和总数查询 只要传入分页参数便能自动查询总数和分页 总数封装在参数里面执行查询后可以直接从参数中获取

Global site tag (gtag.js) - Google Analytics