分页公式

分页
1 什么分页
第N页/共M页 首页 上一页 1 2 3 4 5 6 7 8 9 10 下一页 尾页 口go

  分页的优点:只查询一页,不用查询所有页!

2 分页数据
页面的数据都是由Servlet传递来的!
Servlet:
? 当前面:pageCode,pc;
? pc:如果页面没有传递当前页码,那么Servlet默认是第一页,或者按页面传递的来准!
? 总页数:totalPages,tp
? tp:总记录数/每页记录数
? 总记录数:totalRecored,tr
? tr:dao来获取,select count(*) from t_customer;
? 每页记录数:业务数据或叫系统数据!10行!
? 当前页数据:beanList
? url

3 分页Bean的设计
这些分页数据总要在各层之间来回的传递!
我们把这些分页数据封装到一个javabean中,它就叫分页Bean,例如:PageBean
PageBean.java
public class PageBean<T> {
private int pc;// 当前页码page code
// private int tp;// 总页数total page
private int tr;// 总记录数total record
private int ps;// 每页记录数page size
private List<T> beanList;// 当前页的记录
……
}

4 分页在各层中的处理
? 页面:给出分页相关的链接们!
? 页面需要给Servlet传递什么:有可能传递pc
? Servlet:创建PageBean对象,给PageBean所有的属性赋值,然后传递给页面;
? Servlet需要给DAO传递pc、ps
? Service:略
? Dao:
? tr:select count(*) t_customer
? beanList:select * from t_customer limit x, y

5 显示分页页码列表
1 2 3 4 5 6 7 8 9 10
? 最多显示多少个页码!定为10;
? 当前页,在页码列表中的位置,定为6;

只需要当前页码来定出来页码列表!
定下来页码列表只需要两样数据:
? begin
? end
10 11 12 13 14 (15) 16 17 18 19
需要使用pc来推算出begin和end
begin = pc – 5
end = pc + 4
计算公式:
? 如果总页数<=10(列表长度),那么begin=1,end=总页数
? 使用公式计算;begin=pc-5, end=pc + 4;
? 头溢出:当begin<1时,让begin=1
? 尾溢出:当end>${tp}时,让end=${tp}

6. 在超链接中要保留参数
当使用多条件查询后,然后在点击第2 页时,这个第2页超链接没有条件了,所以会丢失条件,所以我们需要在页面上的所有链接都要保留条件!
我们要把条件以一个字符串的形式保存到PageBean的url中!这个任务交给Servlet!

时间: 2024-09-30 19:17:12

分页公式的相关文章

PHP如何实现网页分页效果

在PHP网站之说,有很多需要实现分页效果,主要是用于阅读小说. 功能实现如下: 使用sql查询进行分页时,需要调用几个函数,具体见脚本: 1.pager.class.php <?php                 class pager {                 public $sql; //SQL查询语句                 public $datanum; //查询所有的数据总记录数                 public $page_size; //每页显示

分页优化+表锁和库存优化+数据库的备份和导入

一.分页优化技术 代码参看: php/classic.php 把50331651记录进行分页,每页显示2条记录,于是我们用传统php编码方式,编写分页代码如下: 上传到/var/www/html下进行测试,结果如下: 如果访问第1页和第4页,返回语句: 使用explain执行计划查询比较靠前的页数,发觉速度很快因为可以使用上索引: 如果访问第4100000页,返回语句: 使用explain分析结果如下: 发觉这时如果分页到了中间的页数,这时我们既需要排序又要分页检索数据的时候,就会出现Using

从273二手车的M站点初探js模块化编程

前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数据. 273这个M站点是产品推荐我看的.第一眼看这个产品时我就再想他们这个三次加载和翻页按钮的方式,那么小分页的pageIndex是怎么计算的.所以就顺便看了下源码. 提到看源码时用到了Chrome浏览器的格式化工具(还是朋友推荐我的,不过这个格式化按钮的确不明显,不会的话自行百度). 三次加载和分

Mysql学习基础语法

-- Mysql  数 据 库 语 法 创建数据库 create database 数据库名; 创建表 create table 表名(id int,name varchar(20)    ); 复制表和数据 create table 复制后新的表名 select * from 旧表名: 复制表的结构 create table 复制后新的表名 select * from where 1=0 : 创建索引 create index 索引名 on 表名(列名): 创建视图 create view 视

Java——JDBC小结(5)

1.事物 关于事物的概念及原理有好多好多,但我的理解就是一句话,要保持一个整体性,就是一个事,要分成几个步骤去完成,但是只有这几个步骤都做完了才是一个完整的事.这里面最简单的示例就是模拟银行的取款与存款了,我直接给出这个示例代码然后加以分析 1 @Test 2 public void test2(){ 3 String payId="00001"; 4 String recId="00002"; 5 double mny=1000; 6 Connection con

MySQL基础(1):基础应用

记录一些可能会用到但又容易忘记的语法. 一.常用语法 1."+":不用作字符串拼接,仅用做运算符,其他值+null还是null 2.CONCAT(value1, value2); 3.IFNULL(value, 0); 4.length(str),获取参数字节数,utf8中字母1个字节,汉字3个字节 5.substring(str, index, len) 截取str,从index开始,截取len长度,索引从1开始 6.instr(str, substr),返回子串第一次出现的下标,找

五种函数、子查询及分页查询思路

聚合函数:[加上列名是为了多个放在一起时易于区分!] 平均分:avg()书写格式:select avg(字段名)as '函数字段名' from 表名称 最大值:max()书写格式:select max(字段名)as '函数字段名' from 表名称 最小值:min()书写格式:select min(字段名)as '函数字段名' from 表名称 求和:sum()书写格式:select sum(字段名)as '函数字段名' from 表名称 数据条数:COUNT(*)书写格式:select 字段名

[转载]Windows下的分页模式- 页目录和页表从物理内存到虚拟映射求值

标 题: [原创]Windows下的分页模式-  页目录和页表从物理内存到虚拟映射求值 作 者: hrpirip 时 间: 2012-12-06,12:45:36 链 接: http://bbs.pediy.com/showthread.php?t=159554 昨天在网上看到一段代码令大为不解,大家都知道一个虚拟地址到物理地址的转换伪公式为:*(*(*PD[(VirtualAddress>>22)] & FFFFF000) [(VirtualAddress & 3FF000)

07. 分页写法小结

原文:07. 分页写法小结 分页的实现方式有这几种:1. 在前台程序中,将所有的记录都读到本地,前台程序通过游标在数据集中上下移动,数据量大的话,性能很差,不推荐:2. 前台程序请求某一页数据时,到数据库做一次查询,返回符合条件的相应记录,这也是目前常用的方法:3. 对方式2的改进,当请求某一页时,同时将前后几页一并返回,用户翻页时就不需要反复请求数据库了. 对于2,3的实现,随着SQL Server版本的升级,常用的方法有三种:TOP,ROW_NUMBER,OFFSET/FETCH NEXT.