首先封装一个分页类

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分页的更多相关文章

  1. page分页问题,根据页码获取对应页面的数据,接口调用

    添加一个log.js文件,进行接口调用. import axios from '@/libs/api.request' const MODULE_URL = '/log'; export const ...

  2. layui -page 分页类

    <?phpnamespace page; // +---------------------------------------------------------------------- / ...

  3. 封装page分页类

    类: <?php //分页工具类 class Page{ /*         * 获取分页字符串         * @param1 string $uri,分页要请求的脚本url       ...

  4. page分页类

    <?php /** file: Page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $lis ...

  5. java Page分页显示

    //entity层实体类 import java.util.List; //分页展示 //相关属性:当前页,页大小(每页显示的条数),总页数,总条数,数据 //select * from t_user ...

  6. jQuery.page 分页控件

    分享一下自己在项目中引用的Jquery分页控件 index.html内容 <!DOCTYPE html> <html lang="zh-cn" xmlns=&qu ...

  7. page 分页

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  8. MVC Page分页控件

    MVCPage帮助类 控制器代码 public ActionResult Article(int? page) { //Session["ArticleClass"] = cont ...

  9. JPA+Postgresql+Spring Data Page分页失败

    按照示例进行如下代码编写 Repository Page<DeviceEntity> findByTenantId(int tenantId, Pageable pageable); se ...

随机推荐

  1. opencv 简单、常用的图像处理函数(2)

    opencv的项目以来配置和环境变量的配置都很简单,对于我这个没有c++基础的来说,复杂的是opencv的api和一些大部分来自国外没有翻译的资料,以及一些常见的编码问题. 资料 opencv 中文a ...

  2. Thread’s start method and run method

    工作中用到了Thread,一开始用错了,仔细研究了一下,稍作整理. 前言,今天写代码居然这样写的 new Thread() { @Override public void run() { System ...

  3. php使用mysql扩展库链接mysql数据库(查询)

    php链接数据库可以使用mysql扩展库,mysqli,pdo这几种方式,相比java而言要麻烦一点,因为它不像java那么统一.从代码的难易程度来说php的确要简单许多.步骤大体如下 1.打开数据库 ...

  4. iOS面试题05-父子控制器、内存管理

    内存管理.父子控制器面试题 1.建立父子关系控制器有什么用 回答:1>监听屏幕选中 2>如果想拿到你当前的很小的一个控制器所在的导航控制器必须要跟外面比较大的控制器建立父子关系,才能一层一 ...

  5. 如何用cocoapods 来管理项目中的第三方框架?

     一.安装 1.如果以前安装过,升级到10.10后工作不正常,可以先删除cocoapods $ sudo gem uninstall cocoapods ----------------------- ...

  6. 【JS控制图片显示的大小(图片等比例缩放)】

    效果: 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  7. html 表头固定

    <div style="width: 100%; min-width: 300px; padding-right: 10px;"> <table style=&q ...

  8. js面向对象的三大特性

    0x00:使用OOP技术,常常要使用许多的代码模块,每个模块都提供特定的功能,每个模块老师孤立的,甚至与其它的模块完全独立,这种模块化的编程方法大大的提供了代码实现的多样性,大大增加了代码的重用性.j ...

  9. 09-C语言数组

    目录: 一.使用xcode编辑工具 二.数组 三.数组遍历 四.多维数组 回到顶部 一.使用xcode编辑工具 1 打开xcode程序 2 创建一个项目 OSX -> Application - ...

  10. ImageMagick还是GraphicsMagick?

    引自:http://co63oc.blog.51cto.com/904636/328997 ImageMagick(IM) 套装包含的命令行图形工具是一主要自由软件:Linux,其他类Unix操作系统 ...