package com.eaju.soms.entity.custom;

import java.util.List;

@SuppressWarnings("rawtypes")
public class PageBean {

// 传递的参数或是配置的参数
private int currentPage; // 当前页
private int pageSize; // 每页显示多少条记录

// 查询数据库
private List recordList; // 本页的数据列表
private int recordCount; // 总记录数

// 计算
private int pageCount; // 总页数
private int beginPageIndex; // 页码列表的开始索引(包含)
private int endPageIndex; // 页码列表的结束索引(包含)

public PageBean() {
super();
}

/**
* 只接受4个必要的属性,会自动的计算出其他3个属性的值
*
* @param currentPage
* @param pageSize
* @param recordList
* @param recordCount
*/
public PageBean(int currentPage, int pageSize, List recordList, int recordCount) {
this.currentPage = currentPage;
this.pageSize = pageSize;
this.recordList = recordList;
this.recordCount = recordCount;

// 计算 pageCount
pageCount = (recordCount + pageSize - 1) / pageSize;

// 计算 beginPageIndex 与 endPageIndex
// >> 总页码小于等于10页时,全部显示
if (pageCount <= 10) {
beginPageIndex = 1;
endPageIndex = pageCount;
}
// >> 总页码大于10页时,就只显示当前页附近的共10个页码
else {
// 默认显示 前4页 + 当前页 + 后5页
beginPageIndex = currentPage - 4; // 7 - 4 = 3;
endPageIndex = currentPage + 5; // 7 + 5 = 12; --> 3 ~ 12

// 如果前面不足4个页码时,则显示前10页
if (beginPageIndex < 1) {
beginPageIndex = 1;
endPageIndex = 10;
}
// 如果后面不足5个页码时,则显示后10页
else if (endPageIndex > pageCount) {
endPageIndex = pageCount;
beginPageIndex = pageCount - 9;
}
}
}

public List getRecordList() {
return recordList;
}

public void setRecordList(List recordList) {
this.recordList = recordList;
}

public int getCurrentPage() {
return currentPage;
}

public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}

public int getPageCount() {
return pageCount;
}

public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}

public int getPageSize() {
return pageSize;
}

public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}

public int getRecordCount() {
return recordCount;
}

public void setRecordCount(int recordCount) {
this.recordCount = recordCount;
}

public int getBeginPageIndex() {
return beginPageIndex;
}

public void setBeginPageIndex(int beginPageIndex) {
this.beginPageIndex = beginPageIndex;
}

public int getEndPageIndex() {
return endPageIndex;
}

public void setEndPageIndex(int endPageIndex) {
this.endPageIndex = endPageIndex;
}
}

分页实体类:PageBean的更多相关文章

  1. mysql mybatis-generator plugin 有page实体类的分页

    page实体类 package cn.zsmy.tmp; import java.io.Serializable; /** * 分页对象. * */public final class Page im ...

  2. hql语句查询实体类采用list方法的返回结果集

    在hibernate中,用hql语句查询实体类,采用list方法的返回结果为一个List,该List中封装的对象分为以下三种情况:1.查询全部字段的情况下,如"from 实体类", ...

  3. [NewLife.XCode]实体类详解

    NewLife.XCode是一个有10多年历史的开源数据中间件,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含 ...

  4. Mybatis自动生成实体类

    Maven自动生成实体类需要的jar包 一.pom.xml中 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns ...

  5. 【动软.Net代码生成器】连接MySQL生成C#的POCO实体类(Model)

    首先是工具的下载地址: 动软.Net代码生成器 该工具官网自带完整教程: 文档:http://www.maticsoft.com/help/ 例子:http://www.maticsoft.com/h ...

  6. c#自定义ORM框架---(泛型&反射&实体类扩展属性<附带通用增、删、查、改>)

    该教材主要是运用到泛型.反射和实体类扩展属性 步骤一.建立扩展属性类 实体类扩展属性要继承Attribute基类完成 [AttributeUsage(AttributeTargets.Property ...

  7. Mybaits 源码解析 (八)----- 全网最详细,没有之一:结果集 ResultSet 自动映射成实体类对象(上篇)

    上一篇文章我们已经将SQL发送到了数据库,并返回了ResultSet,接下来就是将结果集 ResultSet 自动映射成实体类对象.这样使用者就无需再手动操作结果集,并将数据填充到实体类对象中.这可大 ...

  8. JPA使用nativequery多表关联查询返回自定义实体类

    本文为JPA的学习采坑,如有问题欢迎指正. JPA官方推荐的多表关联查询使用不便,接触的有些项目可能会使用JPA 做简单查询,Mybaits做复杂查询.所以想要寻找一种好用的解决方案. JPA多表关联 ...

  9. mybatis generator 使用教程(生成带注释的实体类)

    引言: 最近的一个项目,由于数据库表巨多,导致需要创建N多个java实体.dao.mapper.xml映射文件,如果均使用纯手工编写,无疑需要耗费大量时间和精力.于是上网学习了mybatis gene ...

随机推荐

  1. 用JQuery给图片添加鼠标移入移出事件

    $("#addLineImg").mouseover( function(){ $("#addLineImg").attr("src",&q ...

  2. 我的工具箱之FileZilla_3.11.0.1_win32-setup.1432524055

    FileZilla是用于在Win和Linux之间传递文件的工具,支持FTP和SFTP. 下载地址:http://pan.baidu.com/s/1gelyIYn 2016年3月2日10:29:30

  3. Apple Developer Program Roles Overview

    Apple Developer Program Roles Overview There are three roles that can be assigned to Apple Developer ...

  4. 使用shell测试cdn状态

    公司使用多家cdn,测试cdn在各个地方的响应情况,以便于提高视频访问的用户体验.分别在阿里云华南1,华东1,华东2,华北2等不同地区节点测试.该随笔为自己所用.   1.该脚本会测试某一cdn的ur ...

  5. 简述Mesos API–files

    Below is a set of endpoints available on a Mesos agent. These endpoints are reachable at the address ...

  6. Virtio:针对 Linux 的 I/O 虚拟化框架

    Virtio:针对 Linux 的 I/O 虚拟化框架 --http://www.ibm.com/developerworks/cn/linux/l-virtio/#ibm-pcon 使用 KVM 和 ...

  7. 图像处理之泛洪填充算法(Flood Fill Algorithm)

    泛洪填充算法(Flood Fill Algorithm) 泛洪填充算法又称洪水填充算法是在很多图形绘制软件中常用的填充算法,最熟悉不过就是 windows paint的油漆桶功能.算法的原理很简单,就 ...

  8. cocos2dx 3.x(一张背景图利用定时器实现循环轮播)

    // // MainScene.hpp // helloworld // // Created by apple on 16/9/19. // // #ifndef MainScene_hpp #de ...

  9. scp noneed passwd

    经常在不同linux机器之间互相scp拷文件,每次总是要输入密码才可行. 通过ssh-keygen生成公钥,在两台机器之间互相建立信任通道即可. 假设本地机器client,远程机器为server. 1 ...

  10. eclipse启动无响应,停留在Loading workbench状态

    做开发的同学们或多或少的都会遇到eclipse启动到一定程度时,就进入灰色无响应状态再也不动了.启动画面始终停留在Loading workbench状态.反复重启,状态依旧. 多数情况下,应该是非正常 ...