Java tutorial
/** * Copyright (c) 2011-2014, hubin (jobob@qq.com). * <p> * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * <p> * http://www.apache.org/licenses/LICENSE-2.0 * <p> * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.baomidou.mybatisplus.plugins.pagination; import java.io.Serializable; import org.apache.ibatis.session.RowBounds; import com.baomidou.mybatisplus.toolkit.StringUtils; /** * <p> * ? * </p> * ? org.apache.ibatis.session.RowBounds<br> * ???RowBounds??? * * @author hubin * @Date 2016-01-23 */ public class Pagination extends RowBounds implements Serializable { private static final long serialVersionUID = 1L; /* */ private int total; /* ?? 10 */ private int size = 10; /* */ private int pages; /* ? */ private int current = 1; /* true */ private boolean searchCount = true; /** * ?? true ?? ??sql? * * @see com.baomidou.mybatisplus.mapper.SqlHelper fillWrapper **/ private boolean openSort = true; /** * false ?Optimize.DEFAULT) * * @see com.baomidou.mybatisplus.enums.Optimize * */ private boolean optimizeCount = false; /** * <p> * SQL ? ORDER BY id DESC?id? * </p> * <p> * DESC ??(???)<br> * ASC ??(???) * </p> */ private String orderByField; /** * ??? ASC true */ private boolean isAsc = true; public Pagination() { super(); } /** * <p> * * </p> * * @param current * ? * @param size * ?? */ public Pagination(int current, int size) { this(current, size, true); } public Pagination(int current, int size, boolean searchCount) { this(current, size, searchCount, true); } public Pagination(int current, int size, boolean searchCount, boolean openSort) { super(offsetCurrent(current, size), size); if (current > 1) { this.current = current; } this.size = size; this.searchCount = searchCount; this.openSort = openSort; } protected static int offsetCurrent(int current, int size) { if (current > 0) { return (current - 1) * size; } return 0; } public int getOffsetCurrent() { return offsetCurrent(this.current, this.size); } public boolean hasPrevious() { return this.current > 1; } public boolean hasNext() { return this.current < this.pages; } public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } public int getSize() { return size; } public void setSize(int size) { this.size = size; } public int getPages() { if (this.size == 0) { return 0; } this.pages = this.total / this.size; if (this.total % this.size != 0) { this.pages++; } return this.pages; } public int getCurrent() { return current; } public void setCurrent(int current) { this.current = current; } public boolean isSearchCount() { return searchCount; } public void setSearchCount(boolean searchCount) { this.searchCount = searchCount; } public boolean isOptimizeCount() { return optimizeCount; } public void setOptimizeCount(boolean optimizeCount) { this.optimizeCount = optimizeCount; } public String getOrderByField() { return orderByField; } public void setOrderByField(String orderByField) { if (StringUtils.isNotEmpty(orderByField)) { this.orderByField = orderByField; } } public boolean isOpenSort() { return openSort; } public void setOpenSort(boolean openSort) { this.openSort = openSort; } public boolean isAsc() { return isAsc; } public void setAsc(boolean isAsc) { this.isAsc = isAsc; } @Override public String toString() { return "Pagination { total=" + total + " ,size=" + size + " ,pages=" + pages + " ,current=" + current + " }"; } }