`
kelly.zhang
  • 浏览: 52809 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

一个分页对象比较简单

阅读更多
 package com.netmovie.ent.util;
  2 
  3 import java.util.ArrayList;
  4 import java.util.List;
  5 
  6 public class PaginationSupport {
  7 
  8     private static final int DEFAULT_COUNT_ON_EACH_PAGE = 10;
  9 
 10     private int startPage = 1;// 当前页数
 11 
 12     private int pageSize = DEFAULT_COUNT_ON_EACH_PAGE;// 每页显示条数
 13 
 14     private int startIndex;// 分页首行
 15 
 16     private int pageCount = 0;// 页数
 17 
 18     private int totalCount;// 一共多少条记录
 19 
 20     private int[] indexes = new int[0];
 21 
 22     private List items = new ArrayList();
 23 
 24    
 25     public List getItems() {
 26         return items;
 27     }
 28 
 29     public void setItems(List items) {
 30         this.items = items;
 31     }
 32     public boolean isPages(){
 33         if(this.pageCount<=1){
 34             return false;
 35         }else{
 36             return true;
 37         }
 38     }
 39     public boolean getIsNextPage() {
 40         if(this.startPage>=this.getPageSize()){
 41             return false;
 42         }
 43         return true;
 44     }
 45     public boolean getIsPreviousPage() {
 46         if(this.startPage<=1){
 47             return false;
 48         }
 49         return true;
 50     }
 51 
 52     public void setTotalCount(final int totalCount) {
 53         if (totalCount > 0) {
 54             this.totalCount = totalCount;
 55             int count = totalCount / pageSize;
 56             if (totalCount % pageSize > 0) {
 57                 count++;
 58             }
 59             indexes = new int[count];
 60             for (int i = 0; i < count; i++) {
 61                 indexes[i] = pageSize * i;
 62             }
 63             this.pageCount = count;
 64         } else {
 65             this.pageCount = 0;
 66             this.totalCount = 0;
 67         }
 68     }
 69 
 70     public int getPreviousPage() {
 71 
 72         if (getStartPage() >1) {
 73             return getStartPage() - 1;
 74         } else {
 75             return 1;
 76         }
 77 
 78     }
 79     public int getNextPage() {
 80         if (getStartPage() <= pageCount) {
 81             return getStartPage() + 1;
 82         } else {
 83             return pageCount;
 84         }
 85     }
 86     public int getStartPage() {
 87         return startPage;
 88     }
 89     public void setStartPage(int startPage) {
 90         int _pageCount = getPageCount();
 91         if (startPage <=1) {
 92             this.startPage = 1;
 93         } else if (startPage > _pageCount) {
 94             this.startPage = _pageCount;
 95         } else {
 96             this.startPage = startPage;
 97         }
 98         setStartIndex(indexes[this.startPage - 1]);
 99     }
100 
101     public int getStartIndex() {
102         return startIndex;
103     }
104 
105     public void setStartIndex(int startIndex) {
106         this.startIndex = startIndex;
107     }
108 
109     public int getTotalCount() {
110         return totalCount;
111     }
112 
113     public int getPageSize() {
114         return pageSize;
115     }
116 
117     public void setPageSize(int pageSize) {
118         this.pageSize = pageSize;
119     }
120 
121     public int getPageCount() {
122         return pageCount;
123     }
124 
125     public void setPageCount(int pageCount) {
126         this.pageCount = pageCount;
127     }
128 }
129 
130 dao
131 public static PaginationSupport newsByMovie(final int startPage,final int pageSize){
132         Connection con = null;
133         PreparedStatement ps = null;
134         ResultSet rs = null;
135         PaginationSupport pageSupport = new PaginationSupport();
136         List items = new ArrayList();
137         try {
138        
139             con = DbHelp.getConnection();
140             String sqlCount = "select count(1) from ent_news_prop " +
141             "t left outer JOIN ent_news ent on(t.new_id=ent.nid) ";
142             ps = con.prepareStatement(sqlCount);
143             rs = ps.executeQuery();
144             int totalCount = 0;
145             while(rs.next()){
146                 totalCount = rs.getInt(1);
147             }
148             pageSupport.setPageSize(pageSize);
149             pageSupport.setTotalCount(totalCount);
150             pageSupport.setStartPage(startPage);
151             StringBuffer sb = new StringBuffer();
152             sb.append("SELECT * FROM ( SELECT tt.*,ROWNUM r FROM ( ");
153             String sql = "select t.new_id as newsId,t.movie_id as movieId,ent.title as title,ent.createdate as pubDate,ent.url url from ent_news_prop " +
154                     "t left outer JOIN ent_news ent on(t.new_id=ent.nid) ";
155             sb.append(sql);
156             sb.append(") tt WHERE ROWNUM <= ? ) where r>= ? ");
157             ps = con.prepareStatement(sb.toString());
158             ps.setLong(1,pageSupport.getStartIndex()+pageSupport.getPageSize()-1);
159             ps.setLong(2,pageSupport.getStartIndex());
160             rs = ps.executeQuery();
161             MovieNews movieNews = null;
162             Date pubDate = null;
163             int i = 0;
164            
165             while (rs.next()) {
166                 movieNews = new MovieNews();
167            
168                 movieNews.setNewsId(rs.getInt("newsId"));
169                 movieNews.setMovieId(rs.getInt("movieId"));
170                 movieNews.setTitle(rs.getString("title"));
171                 pubDate = (Date)rs.getDate("pubDate");
172                 movieNews.setPubDate(f.format(pubDate));
173                 movieNews.setUrl(rs.getString("url"));
174                 items.add(movieNews);
175             }
176             pageSupport.setItems(items);
177         }catch(SQLException e){
178             e.printStackTrace();
179         }finally {
180             DbHelp.close(rs, ps, con);
181         }
182         return pageSupport;
183     }
getPageCount()总页数
getStartPage()当前页
getNextPage() 下一页
getPreviousPage() 上一页
isPages() 是否已经分页
getIsNextPage() 是否有下一页
getIsPreviousPage() 是否有上一页
getTotalCount()共有多少条
getItems() 结果集
setTotalCount(otalCount) 设置总行数
isPages() 是否有分页
191 getIsNextPage() 是否有下一页
192 getIsPreviousPage() 是否有上一页
193 getTotalCount()共有多少条
194 getItems() 结果集
195 setTotalCount(final int totalCount) 设置总行数> totalCount) 设置总行数
分享到:
评论

相关推荐

    仿谷歌分页,仿谷歌分页,分页,最简单的分页

    仿谷歌分页,分页,最简单的分页。其中包括对象的封装。

    php面向对象(分页)

    php面向对象(分页)。很好用的,代码简单。实用。给大家学习交流。

    java分页实现(面向对象)

    关于分页的一些代码,很简单,便于学习,和大家共同分享下,共同讨论下。

    简单易懂js分页(已封装)

    简单易懂的js分页,已经分装好,通俗易懂

    .net50个常用方法简单华丽的分页控件功能大的分页控件 50个实用方法

    ///FileTxtReader()读取TXT文本 Txt 文本的地址 返回一个数组 每一行为数组里的一个元素 ///StringEncrypt() DES字符串加密中文不可以加密 ///StringDecrypt()DES解密字符串 ///StringMD5Encrypt()MD5加密...

    最好用的分页代码(java版)

    使用java编写,使用简单、灵活、方便,可自动生成导航,可... 使用时,先new一个对象,再调用init方法初始化后,即可完成分页码,在页面上获取showList得到当前页数据,获取pageNavigation得到导航条。 详见文档内容中的注释吧!

    SSM框架简单分页登录

    spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。 MyBatis是一个支持普通SQL查询,存储过程和...

    jsp + oracle分页简单实用

    //创建一个可以滚动的只读的SQL语句对象 sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); //准备SQL语句 strSQL = "select name,age...

    java分页组件(直接复用,简单方便)

    复用性很强的分页组件,欢迎大家下载使用!

    JSTL JSP 自定义标签 分页

    jh-plugins是一项基于JSTL的自定义标签(插件)库,致力于打造一处实现、任何项目通用的开源项目。 jh-plugins已实现标签库:分页 jh-plugins特点:高效、轻巧、简单、适用(可融合与任何B/S架构的java项目) jh-...

    简单ajax jtemplate json 分页示例

    结合网上的示例,做的ajax分页代码示例,但实现并非是自己写分页对象什么的,而是用SQL语句根据页号选择查找。

    绝对精简的JSP假分页

    绝对精简的JSP分页,经过本人亲测,绝对好用,方便不想复杂分页的朋友使用。 此分页方法是先将要分页的List对象放在Session中, 然后在页面中,用for循环取出数据。

    PHP超好用的分页类,支持两个模式

    这是一个简单的PHP分页显示类,目前支持两种分页模式。一种是最简单的普通分页模式[首页] [上页] [下页] [尾页]模式,另一种是经典分页模式,即:[1][2][3][4][5][6][7][8][9][10][下一页][尾页]。 使用方法 ...

    jspPageControlor分页插件11.2版

    返回一个list对象(该list对象可以是 一个记录集,也可以是一个POJO类对象) (2)、public int getCount(),查询该表中的记录总数,返回一个int对象。 (3)、public void close(),放置所有关闭操作的方法。 3...

    jPage分页(只针对Sql Server数据库)

    1、本版分页只针对Sql Server数据库,采用top n分页方式,节约资源。 2、支持GridView、DataGrid、DataList等数据控件。 3、本分页已应用于数据量百万级的项目中。 4、使用简单,并包含多种样式布局 一、使用方法:...

    简单实现jsp分页

    在这里贴出bean对象的代码,以及一个辅助类。我做的这个项目是一个个人博客,算是个人网站吧。 (只贴部分底层逻辑代码) Page.java package cn.edu.ldu.util; public class Page { private int everyPage; //每页...

    flex 分页控件,我自己写的flex分页控件

    这是我自己写的一个flex组件,使用简单,在使用的时候,只需要在页面载入里,新建组件对象就OK,另外还有一个方法监听控件返回的的页数,可以实现分面。flex会生成linkButton,并且可以按需要控件显示的数量。如有不...

    asp分页方法

    在开始详细介绍各种分页方法前,让我们先创建一个数据库:用Office97中的access自创一个Employee.mdb,其中建一个表emp,只设三个字段:emp ID,last name和first name。为什么这么简单,是因为我们关心的是怎样处理...

    datapagejs:简单分页数据对象

    DataPage.js - 简单的分页数据对象 概要 var pager = new DataPage(total_entries, entries_per_page, current_page, pages_per_pageset); pager.first_page(); pager.last_page(); pager.first(); pager.last(); ...

    基于json的真分页表格插件

    1.列自定义(宽度,可见性) 2.每页显示条目(pageCount) 3.防重复提交 4.数据真分页 5.百分比展示(主要看renderTo对象的定义) 6.使用简单,服务端只需处理 start ,limit两个参数用在dao查询即可

Global site tag (gtag.js) - Google Analytics