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) 设置总行数
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) 设置总行数