文档章节

分页计算公式的封装

猿声啼不住
 猿声啼不住
发布于 2017/08/14 23:05
字数 214
阅读 12
收藏 0

分页计算 需要计算起始页offset 总页数totalPageNum

首先建立一个工具类分装他,以便可以在需要分页的时候都能调用这个类省事儿;

public class PageUtils<T> {
	
	public static final int PER_PAGE_NUM = 2;

	private int totalPageNum;

	private int currentPageNum;
	private List<T> data;

	public PageUtils() {

	}

	public PageUtils(int currentPageNum, int totalPageNum) {
		this.totalPageNum = totalPageNum;
		this.currentPageNum = currentPageNum;
	}

	public PageUtils<T> build(int currentPageNum, int totalDataNum) {
		return new PageUtils<T>(currentPageNum, getTotalPageNum(totalDataNum));
	}

	public Object getData() {
		return data;
	}

	public void setData(List<T> data) {
		this.data = data;
	}

	private static int getTotalPageNum(int totalDataNum) {
		return (totalDataNum % PER_PAGE_NUM) == 0 ? (totalDataNum / PER_PAGE_NUM) : (totalDataNum / PER_PAGE_NUM) + 1;
	}

	public int getOffSet() {
		return (currentPageNum - 1) * PER_PAGE_NUM;
	}

	public int getTotalPageNum() {
		return totalPageNum;
	}

	public int getCurrentPageNum() {
		return currentPageNum;
	}

}

在ATM中列出银行卡流水页面

public PageUtils<Detail> listDetail(int cardId, int currentPageNum) {
		SqlSession session = null;
		try {
			session = DataBaseUtils.getSqlSession(true);
			DetailMapper detailMapper = session.getMapper(DetailMapper.class);
			int totalDataNum = detailMapper.countDetail(cardId);
			
			PageUtils<Detail> pageUtils = new PageUtils<Detail>().build(currentPageNum, totalDataNum);
			
			int offSet = pageUtils.getOffSet();	
			
			List<Detail> detailList = detailMapper.listDetail(cardId, offSet, pageUtils.PER_PAGE_NUM);
			pageUtils.setData(detailList);
			return pageUtils;
		} finally {
			if (null != session) {
				session.close();
			}
		}
	
}

 

© 著作权归作者所有

猿声啼不住
粉丝 0
博文 13
码字总数 4397
作品 0
无锡
私信 提问
SpringBoot之Jpa 多数据源

前言:JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中,在Spring 2.0.1中,正式提供对JPA的支持,这也促成了JPA的发...

王念博客
2016/09/07
2.5K
0
SqlServer数据查找距离指定坐标附近的数据(一)

实现原理,根据球面计算公式,计算两点间的距离。 由于地球是一个不规则的椭球体,当前计算方法,还是有很大的误差在。但能基本实现附近查询。 函数:返回两个坐标之间的公里数 使用示例: ...

tianma3798
01/11
39
0
Laravel --实战篇 (自定义分页类)

前言 : 框架中有封装好的分页类方法,但是这个方法如果是在数据量比较大的项目中,无疑是在无形中给项目挖了一个隐藏的坑,因为如果是看DB类源码的分页基础是把所有的数据都拿了,只不过根据给...

zhiqiangw
2016/10/06
71
0
以太坊技术黄皮书学习笔记8:区块验证

区块验证必须满足以上公式才能证明区块内容是合法有效的,如果你使用了全节点的Ehereum Wallet,在同步数据的时候,你的机器会嗡嗡作响,这是他们在将同步下来的数据进行有效性检验: 如果你...

李万胜
2018/05/16
0
0
我的第一个python web开发框架(29)——定制ORM(六)

  在开发中,查询操作是使用最多的,而查询列表是其中之一,查询列表可分为分页查询和不分页查询(它们之间多了一次总记录数查询),还可以分为单表查询和多表关联查询,返回的结构体根据前...

AllEmpty
2018/08/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

uni app 零基础小白到项目实战

$emit 子组件传给父组件$ref 父组件操作子组件 公用模板 uni-app全局变量的几种实现方法 const websiteUrl = 'http'const now = Date.now || function() { return new Date().getTime......

达达前端小酒馆
15分钟前
4
0
Tomcat是如何实现异步Servlet的

前言 通过我之前的Tomcat系列文章,相信看我博客的同学对Tomcat应该有一个比较清晰的了解了,在前几篇博客我们讨论了Tomcat在SpringBoot框架中是如何启动的,讨论了Tomcat的内部组件是如何设...

木木匠
39分钟前
14
0
mysql中间件分享(Mysql-prxoy,Atlas,DBProxy,Amoeba,cobar,TDDL)

hello 各位小伙伴大家好,我是小栈君,这期我们分享关于mysql中间件的研究,也就是数据层的读写分离和负载均衡,希望能够在实际的应用中能够帮助到各位小伙伴。 下期我们将继续分享go语言的系...

IT干货栈
今天
10
0
OSChina 周一乱弹 —— 人生,还真是到处是意外

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @这次装个文艺青年吧 :#今日歌曲推荐# 分享lil peep的单曲《High School》 《High School》- lil peep 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
611
10
Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTaskExecutor 本文采用 Executors 的工厂...

CREATE_17
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部