一个分页对象比较简单

  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() 上一页
i sPages() 是否已经分页
getIsNextPage() 是否有下一页
getIsPreviousPage() 是否有上一页
getTotalCount()共有多少条
getItems() 结果集
setTotalCount( otalCount) 设置总行数
isPages() 是否有分页
191  getIsNextPage() 是否有下一页
192  getIsPreviousPage() 是否有上一页
193  getTotalCount()共有多少条
194  getItems() 结果集
195  setTotalCount( final   int  totalCount) 设置总行数> totalCount) 设置总行数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值