`
- 浏览:
52809 次
- 性别:
- 来自:
北京
-
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) 设置总行数
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
仿谷歌分页,分页,最简单的分页。其中包括对象的封装。
php面向对象(分页)。很好用的,代码简单。实用。给大家学习交流。
关于分页的一些代码,很简单,便于学习,和大家共同分享下,共同讨论下。
简单易懂的js分页,已经分装好,通俗易懂
///FileTxtReader()读取TXT文本 Txt 文本的地址 返回一个数组 每一行为数组里的一个元素 ///StringEncrypt() DES字符串加密中文不可以加密 ///StringDecrypt()DES解密字符串 ///StringMD5Encrypt()MD5加密...
使用java编写,使用简单、灵活、方便,可自动生成导航,可... 使用时,先new一个对象,再调用init方法初始化后,即可完成分页码,在页面上获取showList得到当前页数据,获取pageNavigation得到导航条。 详见文档内容中的注释吧!
spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。 MyBatis是一个支持普通SQL查询,存储过程和...
//创建一个可以滚动的只读的SQL语句对象 sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); //准备SQL语句 strSQL = "select name,age...
复用性很强的分页组件,欢迎大家下载使用!
jh-plugins是一项基于JSTL的自定义标签(插件)库,致力于打造一处实现、任何项目通用的开源项目。 jh-plugins已实现标签库:分页 jh-plugins特点:高效、轻巧、简单、适用(可融合与任何B/S架构的java项目) jh-...
结合网上的示例,做的ajax分页代码示例,但实现并非是自己写分页对象什么的,而是用SQL语句根据页号选择查找。
绝对精简的JSP分页,经过本人亲测,绝对好用,方便不想复杂分页的朋友使用。 此分页方法是先将要分页的List对象放在Session中, 然后在页面中,用for循环取出数据。
这是一个简单的PHP分页显示类,目前支持两种分页模式。一种是最简单的普通分页模式[首页] [上页] [下页] [尾页]模式,另一种是经典分页模式,即:[1][2][3][4][5][6][7][8][9][10][下一页][尾页]。 使用方法 ...
返回一个list对象(该list对象可以是 一个记录集,也可以是一个POJO类对象) (2)、public int getCount(),查询该表中的记录总数,返回一个int对象。 (3)、public void close(),放置所有关闭操作的方法。 3...
1、本版分页只针对Sql Server数据库,采用top n分页方式,节约资源。 2、支持GridView、DataGrid、DataList等数据控件。 3、本分页已应用于数据量百万级的项目中。 4、使用简单,并包含多种样式布局 一、使用方法:...
在这里贴出bean对象的代码,以及一个辅助类。我做的这个项目是一个个人博客,算是个人网站吧。 (只贴部分底层逻辑代码) Page.java package cn.edu.ldu.util; public class Page { private int everyPage; //每页...
这是我自己写的一个flex组件,使用简单,在使用的时候,只需要在页面载入里,新建组件对象就OK,另外还有一个方法监听控件返回的的页数,可以实现分面。flex会生成linkButton,并且可以按需要控件显示的数量。如有不...
在开始详细介绍各种分页方法前,让我们先创建一个数据库:用Office97中的access自创一个Employee.mdb,其中建一个表emp,只设三个字段:emp ID,last name和first name。为什么这么简单,是因为我们关心的是怎样处理...
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(); ...
1.列自定义(宽度,可见性) 2.每页显示条目(pageCount) 3.防重复提交 4.数据真分页 5.百分比展示(主要看renderTo对象的定义) 6.使用简单,服务端只需处理 start ,limit两个参数用在dao查询即可