分页的实现原理,分页的实现步骤.doc_第1页
分页的实现原理,分页的实现步骤.doc_第2页
分页的实现原理,分页的实现步骤.doc_第3页
分页的实现原理,分页的实现步骤.doc_第4页
分页的实现原理,分页的实现步骤.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分页的实现原理:1. 获得需要显示的总的记录数rowCount从数据库中取 2. 设定每页最多显示的记录数size10 3. 指定显示的页码:num 作为参数得到4. 根据rowCount,size,num可计算出其余的元素: a) 本页面从多少行记录开始:startRow = (this.num-1) * size ; b) 共有多少页:pageCount = (int) Math.ceil(double)rowCount/size); c) 下一页:next=Math.min( this.pageCount, this.num+1) d) 上一页:prev = Math.max(1 , this.num-1) e) 页号控制元素: numCount:每页最多显示多少页号。(一共显示numCount+1个页号) start = Math.max(this.num-numCount/2, first); /本页显示页号从多少页开始 end = Math.min(start+numCount, last); /本页显示页号在多少页结束 页号控制: if(end-start numCount) /当本页总显示的页号数不够numCount时,如何计算起始页号。 start = Math.max(end-numCount, 1);分页实现步骤:1. 将Page类引入。需要自己修改的可自行修改。 package com.puckasoft.video.util; public class Page private int num; /当前页号, 采用自然数计数 1,2,3,.private int size; /页面大小:一个页面显示多少个数据private int rowCount;/数据总数:一共有多少个数据private int pageCount; / 页面总数private int startRow;/当前页面开始行, 第一行是0行private int first = 1;/第一页 页号private int last;/最后页 页号private int next;/下一页 页号private int prev;/前页 页号private int start;/页号式导航, 起始页号private int end;/页号式导航, 结束页号private int numCount = 10;/页号式导航, 最多显示页号数量为numCount+1;这里显示11页。public Page(int size, String str_num, int rowCount) int num = 1;if (str_num != null) num = Integer.parseInt(str_num);this.num = num;this.size=size;this.rowCount = rowCount;this.pageCount = (int) Math.ceil(double)rowCount/size);this.num = Math.min(this.num, pageCount);this.num = Math.max(1, this.num);this.startRow = (this.num-1) * size ;this.last = this.pageCount;this.next = Math.min( this.pageCount, this.num+1);this.prev = Math.max(1 , this.num-1);/计算page 控制start = Math.max(this.num-numCount/2, first);end = Math.min(start+numCount, last);if(end-start numCount)start = Math.max(end-numCount, 1);/ 为了节省篇幅,get,set方法省略。 2. 引入fenye.jsp / pagination.jsp文件:a href=$page.first首页    a href=$page.prev前一页    首页    前一页    a href=$i$i    $i    a href=$page.next后一页    a href=$page.last末页    末页    后一页    共$page.pageCount页 3. 在相应servlet/jsp 里面,将需要显示的记录放到list里面,并将list放到request或者session里面:相应servlet写法如下: base href= 将会列出所有的视频 $ 视频标签:$video.label 视频描述:$video.description 点击量:$video.count 作者:$video.userName 上传时间:$video.createTime 4. 数据库中查询数据:public static List listAllVideos(int startRow,int size) Connection conn=null;PreparedStatement ps=null;String sql = select video.id,vpath,name,label,count,description,userName,video.createTime from video join user on user.id=video.userId order by createTime desc limit ?,? ;ResultSet rs = null;List list = new ArrayList();try conn= DBConn.getConnection();ps = conn.prepareStatement(sql);ps.setInt(1, startRow);ps.setInt(2, size);rs = ps.executeQuery();while(rs.next()com.puckasoft.video.vo.Video video = new com.puckasoft.video.vo.Video(rs.getInt(id),rs.getString(vpath),rs.getString(name),rs.getString(label),rs.getString(description),rs.getString(userName),rs.getInt(count),rs.getTimestamp(createTime);list.add(video); catch (SQLException e) e.printStackTrace();finally DBConn.close(ps, conn);return list;public static int countAllVideos()Connection conn=null;PreparedStatement ps=null;String sql = select count(*) from video;ResultSet rs = null;int count=0;try conn= DBConn.getConnection();ps = conn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论