面向对象的分页程序

原创|其它|编辑:郝浩|2009-03-19 08:55:33.000|阅读 385 次

概述:在WEB的项目中,总免不了要分页,在以前的项目中一般都是采用SQL语言去分页,但SQL语言不好的一个地方就是每种数据库可能有一些不同,用hibernate是可以解决这个问题,但是我们的项目没有用到任何框架,主要的技术是jsp+javaBean+servlet,是表现层我采用的是面向对象的方法,数据库中的每个表对应一个javaBean,表中的每条记录就是一个javaBean的对象,

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

  在WEB的项目中,总免不了要分页,在以前的项目中一般都是采用SQL语言去分页,但SQL语言不好的一个地方就是每种数据库可能有一些不同,用hibernate是可以解决这个问题,但是我们的项目没有用到任何框架,主要的技术是jsp+javaBean+servlet,是表现层我采用的是面向对象的方法,数据库中的每个表对应一个javaBean,表中的每条记录就是一个javaBean的对象,所以分页程序我也采用面向对象,只要在前台拿到一个表的所有记录,用一个list存起来,然后用进list进行分页即可.

  具体的分页程序如下:

1importjava.util.*;
2
3/**
4*些类负责分页显示
5*@authorfeng
6*/
7publicclassPagination<E>
8{
9 privateintpageSize;;//每页记录数
10 privateintpageCount;//总页数
11 
12 
13 publicList<E>getList(List<E>list,intpageCur){
14 List<E>pageList=newArrayList<E>();
15 intcount=0;
16 count=list.size();
17 if(count<pageCur*pageSize){
18  for(inti=(pageCur-1)*pageSize;i<count;i++){
19  pageList.add(list.get(i));
20  }
21 }else{
22  for(inti=(pageCur-1)*pageSize;i<pageCur*pageSize;i++){
23  pageList.add(list.get(i));
24  }
25 }
26 returnpageList;
27 }
28
29 publicintgetPageCount(List<E>list){
30 intsum=0;
31 sum=list.size();
32 pageCount=sum/pageSize+1;
33 returnpageCount;
34 }
35
36 publicintgetPageSize(){
37 returnthis.pageSize;
38 }
39 publicvoidsetPageSize(intpageSize){
40 this.pageSize=pageSize;
41 }
42}
43

  在前台只要把数据库的数据取出,将他放进List中,然后进行分页即可,例如:

  有一表user,对应有javaBean为User,先声明一个List

List<User> list =new List<User>();

  然后将user表中的所有记录查出,然后add进list中,

  下面是分页

Pagination<User> p = new Pagination<User>();
p.setPageSize(10);
pageCount = p.getPageCount(list);
list = p.getList(list,1)

  返回的list就是一页的对象了,按顺序取出显示即可.


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:BlogJava

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP