maven cited
<dependency> 2 <groupId>com.github.pagehelper</groupId> 3 <artifactId>pagehelper</artifactId> 4 <version>5.1.4</version> 5 </dependency> 6 7 <dependency> 8 <groupId>com.github.pagehelper</groupId> 9 <artifactId>pagehelper-spring-boot-starter</artifactId> 10 <version>1.2.10</version> 11 </dependency>
添加工具类
org.demo.customer.common Package; 2 . 3 Import the java.io.Serializable; . 4 Import java.util.Collection; . 5 Import java.util.List; . 6 Import com.github.pagehelper.Page; . 7 Import com.github. pagehelper.PageSerializable; . 8 . 9 / * 10 * . 11 * / 12 is PageInfo public class <T> the extends PageSerializable <T> { 13 is this page // 14 Private int pageNum; 15 16 // number per page . 17 Private int the pageSize; 18 is 19 // current number of page 20 is Private int size; 21 is 22 is the total number of pages @ 23 is int Private pages; 24 25 // Since startRow and endRow not common here that a specific usage 26 // can "show startRow to endRow total size of data" in the page 27 28 // current page is the first element of the row number in the database 29 int the startRow Private; 30 // last element of the current page row number in the database 31 is int Private endRow; 32 33 is a front // 34 is Private int prePage; 35 // Next 36 Private int nextPage; 37 [ 38 is // is a first page 39 = Private isFirstPage to false Boolean; 40 // is the last one 41 private boolean isLastPage = false; if a front 42 // 43 is hasPreviousPage = Boolean Private to false; 44 is whether or not there is // Next 45 private boolean hasNextPage = false; 46 is the navigation page number // Private navigatePages int 47; 48 // all navigation page number 49 private int [] navigatepageNums; a first page on the navigation bar 50 // 51 private int navigateFirstPage; the last page on the navigation bar 52 @ 53 is navigateLastPage Private int; 54 is public PageInfo 55 () { 56 is} 57 is 58 / ** 59 * packing Page Object 60 * 61 is * @param List 62 is * / 63 is public PageInfo (List <T> List) { 64 the this (List,. 8); 65} 66 67 / ** 68 * packing Page Object 69 * 70 * @param results Page List 71 * @param number navigatePages Page 72 * / Public PageInfo 73 is (List <T> List, int navigatePages) { 74 Super (List); 75 IF (the instanceof Page List) { 76 = Page Page (Page) List; 77 this.pageNum page.getPageNum = (); 78 the this = page.getPageSize .pageSize (); 79 80 this.pages page.getPages = (); 81 this.size page.size = (); 82 // since the result is> startRow, the actual needs + 1'd 83 IF (this.size == 0) { 84 this.startRow = 0; 85 this.endRow = 0; 86} the else { 87 this.startRow = page.getStartRow() + 1; 88 // calculate the actual endRow (a special last time) 89 this.endRow = this.startRow - 1 + this.size; } 90 91 is the else} IF (Collection List the instanceof) { 92 = this.pageNum. 1; 93 this.pageSize list.size = (); 94 95 this.pages this.pageSize => 0. 1:? 0; 96 this.size list.size = (); 97 this.startRow = 0; 98 = this.endRow list.size ()> 0 list.size () -. 1:? 0; 99} 100 IF (Collection List the instanceof) { 101 the this. = navigatePages navigatePages; 102 // compute a navigation page 103 calcNavigatepageNums (); 104 // calculated before and after page, the first page, the last page 105 calcPage (); 106 page boundaries determined // 107 judgePageBoudary (); 108} 109} 110 111 public static <T> PageInfo <T> of (List <T> List) { 112 return new new PageInfo <T> (List); 113} 114 115 public static <T> PageInfo <T> of ( List <T> List, int navigatePages) { 1 16 return new new PageInfo <T> (List, navigatePages); 117} 1 18 119 / ** 120 * calculated navigation page 121 * / 122 calcNavigatepageNums Private void () { 123 // when the total when the number of pages the number of pages is less than or equal to the navigation 124 IF (pages <= navigatePages) { 125 navigatepageNums = new new int [pages]; 126 for (int I = 0; I <pages; I ++) { 127 navigatepageNums [I] = I +. 1; 128} 129} else {// when the total number of pages is larger than the navigation page 130. navigatepageNums = new new int [navigatePages]; 131 is StartNum int = pageNum - navigatePages / 2; 132 + int endNum = pageNum navigatePages / 2; 133 134 IF (StartNum < . 1) { 135 StartNum =. 1; 136 // (frontmost navigatePages page 137 for (int I = 0; I <navigatePages; I ++) { 138 navigatepageNums [I] = StartNum ++; 139} 140} the else IF (endNum> pages) { Pages endNum = 141 is; 142 // last page navigatePages For 143 (int I = navigatePages -. 1; I> = 0; i--) { 160. navigateFirstPage navigatepageNums = [0]; NavigatepageNums 144 [I] = endNum--; 145} 146} the else { 147 // all intermediate pages 148 for (int I = 0; I <navigatePages; I ++) { 149 navigatepageNums [I] = StartNum ++; 150} 151} 152 } 153} 154 155 / ** 156 * calculated front pages, the first page, the last page 157 * / 158 calcPage Private void () { 159 IF (navigatepageNums! = null && navigatepageNums.length> 0) { 162 IF (pageNum>. 1) { NavigateLastPage navigatepageNums = 161 [navigatepageNums.length - 1]; 163 Prepago pageno = - 1; 164} 165 if (pageno <pages) { 166 nextPage pageno = +1; 167} 168} 169} 170 171 / ** 172 *判定页面边界 173/ 174 private void judgePageBoudary () { 175 isFirstPage pageno = == 1; 176 islastpage pageno = == page || pages == 0; 177 hasPreviousPage pageno => 1; 178 hasNextPage pageno = <pages; 179} 180 181 public int getPageNum () { 182 return pageno; 183} 184 185 public void setPageNum (int pageno) { 186 this.pageNum = pageNum; 187 } 188 189 public int getPageSize() { 190 return pageSize; 191 } 192 193 public void setPageSize(int pageSize) { 194 this.pageSize = pageSize; 195 } 196 197 public int getSize() { 198 return size; 199 } 200 201 public void setSize(int size) { 202 this.size = size; 203 } 204 205 public int getStartRow() { 206 return startRow; 207 } 208 209 public void setStartRow(int startRow) { 210 this.startRow = startRow; 211 } 212 213 public int getEndRow() { 214 return endRow; 215 } 216 217 public void setEndRow(int endRow) { 218 this.endRow = endRow; 219 } 220 221 public int getPages() { 222 return pages; 223 } 224 225 public void setPages(int pages) { 226 this.pages = pages; 227 } 228 229 public int getPrePage() { 230 return prePage; 231 } 232 233 public void setPrePage(int prePage) { 234 this.prePage = prePage; 235 } 236 237 public int getNextPage() { 238 return nextPage; 239 } 240 241 public void setNextPage(int nextPage) { 242 this.nextPage = nextPage; 243 } 244 245 public boolean isIsFirstPage() { 246 return isFirstPage; 247 } 248 249 public void setIsFirstPage(boolean isFirstPage) { 250 this.isFirstPage = isFirstPage; 251 } 252 253 public boolean isIsLastPage() { 254 return isLastPage; 255 } 256 257 public void setIsLastPage(boolean isLastPage) { 258 this.isLastPage = isLastPage; 259 } 260 261 public boolean isHasPreviousPage() { 262 return hasPreviousPage; 263 } 264 265 public void setHasPreviousPage(boolean hasPreviousPage) { 266 this.hasPreviousPage = hasPreviousPage; 267 } 268 269 public boolean isHasNextPage() { 270 return hasNextPage; 271 } 272 273 public void setHasNextPage(boolean hasNextPage) { 274 this.hasNextPage = hasNextPage; 275 } 276 277 public int getNavigatePages() { 278 return navigatePages; 279 } 280 281 public void setNavigatePages(int navigatePages) { 282 this.navigatePages = navigatePages; 283 } 284 285 public int[] getNavigatepageNums() { 286 return navigatepageNums; 287 } 288 289 public void setNavigatepageNums(int[] navigatepageNums) { 290 this.navigatepageNums = navigatepageNums; 291 } 292 293 public int getNavigateFirstPage() { 294 return navigateFirstPage; 295 } 296 297 public int getNavigateLastPage() { 298 return navigateLastPage; 299 } 300 301 public void setNavigateFirstPage(int navigateFirstPage) { 302 this.navigateFirstPage = navigateFirstPage; 303 } 304 305 public void setNavigateLastPage(int navigateLastPage) { 306 this.navigateLastPage = navigateLastPage; 307 } 308 309 @Override 310 public String toString() { 311 final StringBuilder sb = new StringBuilder("PageInfo{"); 312 sb.append("pageNum=").append(pageNum); 313 sb.append(", pageSize=").append(pageSize); 314 sb.append(", size=").append(size); 315 sb.append(", startRow=").append(startRow); 316 sb.append(", endRow=").append(endRow); 317 sb.append(", total=").append(total); 318 sb.append(", pages=").append(pages); 319 sb.append(", list=").append(list); 320 sb.append(", prePage=").append(prePage); 321 sb.append(", nextPage=").append(nextPage); 322 sb.append(", isFirstPage=").append(isFirstPage); 323 sb.append(", isLastPage=").append(isLastPage); 324 sb.append(", hasPreviousPage=").append(hasPreviousPage); 325 sb.append(", hasNextPage=").append(hasNextPage); 326 sb.append(", navigatePages=").append(navigatePages); 327 sb.append(", navigateFirstPage=").append(navigateFirstPage); 328 sb.append(", navigateLastPage=").append(navigateLastPage); 329 sb.append(", navigatepageNums="); 330 if (navigatepageNums == null) { 331 sb.append("null"); 332 } else { 333 sb.append('['); 334 for (int i = 0; i < navigatepageNums.length; ++i) { 335 sb.append(i == 0 ? "" : ", ").append(navigatepageNums[i]); 336 } 337 sb.append(']'); 338 } 339 sb.append('}'); 340 return sb.toString(); 341 } 342 343 }
使用方法
public PageInfo<Customer> GetPageInfo(int currentPage, int pageSize) { 2 PageHelper.startPage(currentPage, pageSize); 3 4 List<Customer> list = customerMapper.GetDataList(); 5 PageInfo<Customer> pageInfo = new PageInfo<>(list); 6 return pageInfo; 7 }