package com.xe.demo.common.pojo;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import com.github.pagehelper.Page;
/**
* 封装分页请求结果
* @author CZH
*/
@SuppressWarnings({"rawtypes", "unchecked"})
public class PageAjax<T> implements Serializable {
private static final long serialVersionUID = 1L;
/**当前页*/
private int pageNo;
/**每页的数量*/
private int pageSize;
/**当前页的数量*/
private int size;
/**排序*/
private String orderBy;
/**当前页面第一个元素在数据库中的行号*/
private int startRow;
/**当前页面最后一个元素在数据库中的行号*/
private int endRow;
/**总记录数*/
private long total;
/**总页数*/
private int pages;
/**结果集*/
private List<T> rows;
/**第一页*/
private int firstPage;
/**前一页*/
private int prePage;
/**下一页*/
private int nextPage;
/**最后一页*/
private int lastPage;
/**是否为第一页*/
private boolean isFirstPage = false;
/**是否为最后一页*/
private boolean isLastPage = false;
/**是否有前一页*/
private boolean hasPreviousPage = false;
/**是否有下一页*/
private boolean hasNextPage = false;
/**导航页码数*/
private int navigatePages;
/**所有导航页号*/
private int[] navigatepageNums;
public PageAjax() {
}
/**
* 包装Page对象
* @param list
*/
public PageAjax(List<T> list) {
this(list, 8);
}
/**
* 包装Page对象
* @param list page结果
* @param navigatePages 页码数量
*/
public PageAjax(List<T> list, int navigatePages) {
if (list instanceof Page) {
Page page = (Page) list;
this.pageNo = page.getPageNum();
this.pageSize = page.getPageSize();
// this.orderBy = page.getOrderBy();
this.pages = page.getPages();
this.rows = page;
this.size = page.size();
this.total = page.getTotal();
//由于结果是>startRow的,所以实际的需要+1
if (this.size == 0) {
this.startRow = 0;
this.endRow = 0;
} else {
this.startRow = page.getStartRow() + 1;
//计算实际的endRow(最后一页的时候特殊)
this.endRow = this.startRow - 1 + this.size;
}
} else if (list instanceof Collection) {
this.pageNo = 1;
this.pageSize = list.size();
this.pages = 1;
this.rows = list;
this.size = list.size();
this.total = list.size();
this.startRow = 0;
this.endRow = list.size() > 0 ? list.size() - 1 : 0;
}
if (list instanceof Collection) {
this.navigatePages = navigatePages;
//计算导航页
calcNavigatepageNums();
//计算前后页,第一页,最后一页
calcPage();
//判断页面边界
judgePageBoudary();
}
}
/**
* 计算导航页
*/
private void calcNavigatepageNums() {
//当总页数小于或等于导航页码数时
if (pages <= navigatePages) {
navigatepageNums = new int[pages];
for (int i = 0; i < pages; i++) {
navigatepageNums[i] = i + 1;
}
} else { //当总页数大于导航页码数时
navigatepageNums = new int[navigatePages];
int startNum = pageNo - navigatePages / 2;
int endNum = pageNo + navigatePages / 2;
if (startNum < 1) {
startNum = 1;
//(最前navigatePages页
for (int i = 0; i < navigatePages; i++) {
navigatepageNums[i] = startNum++;
}
} else if (endNum > pages) {
endNum = pages;
//最后navigatePages页
for (int i = navigatePages - 1; i >= 0; i--) {
navigatepageNums[i] = endNum--;
}
} else {
//所有中间页
for (int i = 0; i < navigatePages; i++) {
navigatepageNums[i] = startNum++;
}
}
}
}
/**
* 计算前后页,第一页,最后一页
*/
private void calcPage() {
if (navigatepageNums != null && navigatepageNums.length > 0) {
firstPage = navigatepageNums[0];
lastPage = navigatepageNums[navigatepageNums.length - 1];
if (pageNo > 1) {
prePage = pageNo - 1;
}
if (pageNo < pages) {
nextPage = pageNo + 1;
}
}
}
/**
* 判定页面边界
*/
private void judgePageBoudary() {
isFirstPage = pageNo == 1;
isLastPage = pageNo == pages;
hasPreviousPage = pageNo > 1;
hasNextPage = pageNo < pages;
}
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public String getOrderBy() {
return orderBy;
}
public void setOrderBy(String orderBy) {
this.orderBy = orderBy;
}
public int getStartRow() {
return startRow;
}
public void setStartRow(int startRow) {
this.startRow = startRow;
}
public int getEndRow() {
return endRow;
}
public void setEndRow(int endRow) {
this.endRow = endRow;
}
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public int getPages() {
return pages;
}
public void setPages(int pages) {
this.pages = pages;
}
public List<T> getRows() {
return rows;
}
public void setRows(List<T> rows) {
this.rows = rows;
}
public int getFirstPage() {
return firstPage;
}
public void setFirstPage(int firstPage) {
this.firstPage = firstPage;
}
public int getPrePage() {
return prePage;
}
public void setPrePage(int prePage) {
this.prePage = prePage;
}
public int getNextPage() {
return nextPage;
}
public void setNextPage(int nextPage) {
this.nextPage = nextPage;
}
public int getLastPage() {
return lastPage;
}
public void setLastPage(int lastPage) {
this.lastPage = lastPage;
}
public boolean isIsFirstPage() {
return isFirstPage;
}
public void setIsFirstPage(boolean isFirstPage) {
this.isFirstPage = isFirstPage;
}
public boolean isIsLastPage() {
return isLastPage;
}
public void setIsLastPage(boolean isLastPage) {
this.isLastPage = isLastPage;
}
public boolean isHasPreviousPage() {
return hasPreviousPage;
}
public void setHasPreviousPage(boolean hasPreviousPage) {
this.hasPreviousPage = hasPreviousPage;
}
public boolean isHasNextPage() {
return hasNextPage;
}
public void setHasNextPage(boolean hasNextPage) {
this.hasNextPage = hasNextPage;
}
public int getNavigatePages() {
return navigate
没有合适的资源?快使用搜索试试~ 我知道了~
springboot + mybatis(通用mapper) + druid多数据源
共56个文件
java:14个
class:14个
xml:10个
5星 · 超过95%的资源 需积分: 49 350 下载量 184 浏览量
2017-05-08
11:39:31
上传
评论 4
收藏 63KB ZIP 举报
温馨提示
springboot + mybatis(通用mapper) + druid多数据源
资源推荐
资源详情
资源评论
收起资源包目录
demo-boot-multdata.zip (56个子文件)
demo-boot-multdata
pom.xml 5KB
target
test-classes
m2e-jee
web-resources
META-INF
maven
com.xe.demo
demo-boot-multdata
pom.xml 5KB
pom.properties 248B
MANIFEST.MF 364B
classes
logback.xml 1KB
application.properties 1KB
com
xe
demo
model
AuthUser.class 2KB
mapper
AuthUserMapper.class 271B
common
dao
MyMapper.class 347B
pojo
AjaxResult.class 2KB
PageAjax.class 8KB
ds
TargetDataSource.class 490B
DynamicDataSourceAspect.class 1KB
DynamicDataSource.class 1KB
DynamicDataSourceRegister.class 6KB
utils
AppUtil.class 7KB
controller
UserController.class 2KB
service
UserService.class 3KB
AbstratService.class 4KB
Application.class 2KB
mapper
AuthUserMapper.xml 974B
generatorConfig.xml 2KB
.factorypath 10KB
.settings
org.eclipse.m2e.core.prefs 90B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.project.facet.core.xml 344B
org.eclipse.core.resources.prefs 250B
org.eclipse.wst.common.component 766B
org.eclipse.wst.common.project.facet.core.prefs.xml 161B
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.jdt.apt.core.prefs 68B
org.eclipse.wst.validation.prefs 50B
.jsdtscope 572B
org.eclipse.jdt.core.prefs 488B
src
test
resources
java
main
webapp
resources
logback.xml 1KB
application.properties 1KB
mapper
AuthUserMapper.xml 974B
generatorConfig.xml 2KB
java
com
xe
demo
model
AuthUser.java 3KB
Application.java 1KB
mapper
AuthUserMapper.java 173B
common
dao
MyMapper.java 1KB
pojo
PageAjax.java 9KB
AjaxResult.java 1KB
ds
DynamicDataSourceRegister.java 4KB
TargetDataSource.java 490B
DynamicDataSourceAspect.java 983B
DynamicDataSource.java 749B
utils
AppUtil.java 6KB
controller
UserController.java 1KB
service
AbstratService.java 3KB
UserService.java 2KB
sql
auth1.sql 5KB
auth.sql 4KB
.project 2KB
.classpath 2KB
.apt_generated
共 56 条
- 1
逍遥遥浪子
- 粉丝: 33
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页