page分页
首先封装一个分页类
public class Page<T> {
/**
* 当前页号
*/
private int pageNumber;
/**
* 总条数
*/
private int totalCount;
/**
* 总页数
*/
private int totalPage;
/**
* 每页显示的数量
*/
private int pageSize;
/**
* 当前页的数据
*/
private List<T> item;
/**
* 当前起始行号
* @return
*/
private int from;
public Page(){}
public Page(int pageSize,int totalCount,String pageNumber) {
setPageSize(pageSize);
setTotalCount(totalCount);
setPageNumber(pageNumber);
}
public int getPageNumber() {
return pageNumber;
}
public void setPageNumber(String pageNumber) {
if(StringUtil.isNumber(pageNumber)){
int tempNumber = Integer.parseInt(pageNumber);
if(tempNumber < 1){
tempNumber = 1;
}else if(tempNumber > getTotalPage()){
tempNumber = getTotalPage();
}
this.pageNumber = tempNumber;
}else{
this.pageNumber = 1;
}
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
this.totalPage = totalCount / getPageSize();
if(totalCount % getPageSize() != 0) {
this.totalPage++;
}
}
public int getTotalPage() {
return totalPage;
}
/*public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}*/
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public List<T> getItem() {
return item;
}
public void setItem(List<T> item) {
this.item = item;
}
public int getFrom() {
return (getPageNumber() - 1) * getPageSize();
}
public void setForm(int from) {
this.from = from;
}
public List<Integer> getSlider(){
int startPageNumber = getPageNumber() - 2;
int endPageNumber = getPageNumber() + 2;
if(startPageNumber <= 0){
endPageNumber -= startPageNumber - 1;
startPageNumber = 1;
}
if(endPageNumber > getTotalPage()){
int temp = getTotalPage() - endPageNumber;
endPageNumber = getTotalPage();
startPageNumber = startPageNumber + temp;
if(startPageNumber < 1){
startPageNumber = 1;
}
}
List<Integer> result = new ArrayList<Integer>();
for(int i = startPageNumber;i <= endPageNumber;i++){
result.add(i);
}
return result;
}
}
controller中
Page<Active> page = new ActiveService().findByProjectid(projectid,pageNo);
service中
public Page<Active> findByProjectid(String projectid, String pageNo) {
return activeDao.findAllByidAndPageNo(Long.valueOf(projectid),pageNo);
}
dao中
public Page<Active> findAllByidAndPageNo(Long projectid, String pageNo) {
String sql = "SELECT * FROM active,account WHERE active.accountid = account.id AND projectid = ? order by active.id desc limit ?,?";
Page<Active> page = new Page<Active>(5, findActiveCountByprojectid(projectid), pageNo);
//因为返回的page中的item里是没有account信息的,但是在home.jsp中需要显示account的头像和姓名,所以要重写这个rowmapper
List<Active> list = db.queryForList(sql, new RowMapper<Active>(){
@Override
public Active mapRow(ResultSet rs) throws SQLException {
Active active = new Active();
active.setAccountid(rs.getLong("accountid"));
active.setContext(rs.getString("context"));
active.setCreatetime(rs.getTimestamp("createtime"));
active.setId(rs.getLong("id"));
active.setProjectid(rs.getLong("projectid"));
active.setType(rs.getString("type"));
Account account = new Account();
account.setId(rs.getLong("accountId"));
account.setUsername(rs.getString("username"));
account.setPic(rs.getString("pic"));
active.setAccount(account);
return active;
}
}, projectid,page.getFrom(),page.getPageSize());
page.setItem(list);
return page;
}
private int findActiveCountByprojectid(Long projectid) {
String sql = "select count(*) from active where projectid = ?";
return db.queryForCount(sql, projectid).intValue();
}
page分页的更多相关文章
- page分页问题,根据页码获取对应页面的数据,接口调用
添加一个log.js文件,进行接口调用. import axios from '@/libs/api.request' const MODULE_URL = '/log'; export const ...
- layui -page 分页类
<?phpnamespace page; // +---------------------------------------------------------------------- / ...
- 封装page分页类
类: <?php //分页工具类 class Page{ /* * 获取分页字符串 * @param1 string $uri,分页要请求的脚本url ...
- page分页类
<?php /** file: Page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $lis ...
- java Page分页显示
//entity层实体类 import java.util.List; //分页展示 //相关属性:当前页,页大小(每页显示的条数),总页数,总条数,数据 //select * from t_user ...
- jQuery.page 分页控件
分享一下自己在项目中引用的Jquery分页控件 index.html内容 <!DOCTYPE html> <html lang="zh-cn" xmlns=&qu ...
- page 分页
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- MVC Page分页控件
MVCPage帮助类 控制器代码 public ActionResult Article(int? page) { //Session["ArticleClass"] = cont ...
- JPA+Postgresql+Spring Data Page分页失败
按照示例进行如下代码编写 Repository Page<DeviceEntity> findByTenantId(int tenantId, Pageable pageable); se ...
随机推荐
- hdoj Scaena Felix
Scaena Felix Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tota ...
- android 数据持久化——I/O操作
上一节中简单的介绍了File的操作,这一节来说说使用android平台自带对象实现文件的基本操作 主要的两个类:openFileOutput(写)和openFileInput(读) 向文件中写如数据代 ...
- android UI进阶之用【转】
android UI进阶之用ViewPager实现欢迎引导页面 摘要: ViewPager需要android-support-v4.jar这个包的支持,来自google提供的一个附加包.大家搜下即可. ...
- objective-C学习笔记(五)函数成员:初始化器和析构器
初始化器:init 对象初始化器: -(id)init 可以重载多个. 类型初始化器: +(id)initialize只能有一个. 对象初始化器: 初始化对象实例时,init通常和alloc(手动内存 ...
- C#高级编程技术复习一
从基本的Socket编程进入 (注意:这是转的一篇2011年的文章,有些知识可能该更新了!) 这一篇文章,我将图文并茂地介绍Socket编程的基础知识,我相信,如果你按照步骤做完实验,一定可以对Soc ...
- Hibernate中,left join、inner join以及left join fetch区别(转)
标签: hibernate hql inner join left right 杂谈 分类: SQL 原文地址:http://m33707.iteye.com/blog/829725 Select F ...
- C++ const 限定符
C++ const 限定符 作用:把一个对象转换成一个常量 用法:const type name = value; 性质:1. 定义时必须初始化,定义后不能被修改.2. 类中的const成员变量必须通 ...
- BZOJ 1208: [HNOI2004]宠物收养所(BST)
本来想先用set写一遍,再自己写个splay或treap,不过用set过了之后就懒得去写了....以后有空再来写吧..(不会有空的吧= = ------------------------------ ...
- 在数组中找几个数的和等于某个数[LeetCode]
首先明确一点,这个方面的问题设计到的知识点是数组的查找的问题.对于类似的这样的查找操作的具体办法就是三种解决方法: 1.暴力算法,多个for循环,很高的时间复杂度 2.先排序,然后左右夹逼,但是这样会 ...
- divmod数字处理函数
divmod(a,b)函数 中文说明: divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数 返回结果类型为tuple 参数: a,b可以为数字(包括复数) 版本: 在python2 ...