spring boot+Mybatis+mapper 分頁方法

首先需要一個pageHelper.

pom.xml

    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.2.10</version>
    </dependency>

yml 配置

#pagehelper
pagehelper:
   helperDialect: mysql
   reasonable: true
   supportMethodsArguments: true
   params: count=countSql

dao 層寫一個分頁方法

 Page<Event> findByPage(int pId);

mapper

<select id="findByPage" resultMap="BaseResultMap">
  select
<include refid="Base_Column_List" />
  from event
  where pId = #{pId,jdbcType=INTEGER}   </select>

PageInfo 類

 import com.github.pagehelper.Page;
 import java.io.Serializable;
 import java.util.Collection;
 import java.util.List;

public class PageInfo<T> implements Serializable {

private static final long serialVersionUID = 1L;
//當前頁
private int pageNum;
//每頁的數量
private int pageSize;
//總記錄數
private long total;
//總頁數
private int pages;
//結果集
private List<T> list;
//是否爲第一頁
private boolean isFirstPage = false;
//是否爲最後一頁
private boolean isLastPage = false;


public PageInfo() {
}

/**
 * 包裝Page對象
 *
 * @param list
 */
public PageInfo(List<T> list) {
    if (list instanceof Page) {
        Page page = (Page) list;
        this.pageNum = page.getPageNum();
        this.pageSize = page.getPageSize();

        this.pages = page.getPages();
        this.list = page;
        this.total = page.getTotal();
    } else if (list instanceof Collection) {
        this.pageNum = 1;
        this.pageSize = list.size();

        this.pages = 1;
        this.list = list;
        this.total = list.size();
    }
    if (list instanceof Collection) {
        //判斷頁面邊界
        judgePageBoudary();
    }
}

/**
 * 判定頁面邊界
 */
private void judgePageBoudary() {
    isFirstPage = pageNum == 1;
    isLastPage = pageNum == pages;
}

public int getPageNum() {
    return pageNum;
}

public void setPageNum(int pageNum) {
    this.pageNum = pageNum;
}

public int getPageSize() {
    return pageSize;
}

public void setPageSize(int pageSize) {
    this.pageSize = pageSize;
}

public long getTotal() {
    return total;
}

public void setTotal(long total) {
    this.total = total;
}

public int getPages() {
    return pages;
}

public void setPages(int pages) {
    this.pages = pages;
}

public List<T> getList() {
    return list;
}

public void setList(List<T> list) {
    this.list = list;
}

public boolean isIsFirstPage() {
    return isFirstPage;
}

public void setIsFirstPage(boolean isFirstPage) {
    this.isFirstPage = isFirstPage;
}

public boolean isIsLastPage() {
    return isLastPage;
}

public void setIsLastPage(boolean isLastPage) {
    this.isLastPage = isLastPage;
}

@Override
public String toString() {
    final StringBuffer sb = new StringBuffer("PageInfo{");
    sb.append("pageNum=").append(pageNum);
    sb.append(", pageSize=").append(pageSize);
    sb.append(", total=").append(total);
    sb.append(", pages=").append(pages);
    sb.append(", list=").append(list);
    sb.append(", isFirstPage=").append(isFirstPage);
    sb.append(", isLastPage=").append(isLastPage);
    sb.append(", navigatepageNums=");
    sb.append('}');
    return sb.toString();
}

}

Service層

  public List<EventBean> getEvent(int pageNum,int pageSize,int pid){
  
    PageHelper.startPage(pageNum,pageSize).setOrderBy("eId desc");
    Page<Event> pages = eventMapper.findByPage(pid);
    PageInfo<Event> pageInfo = new PageInfo<>(pages);

    return pageInfo .getList();
}

測試
在這裏插入圖片描述
簡單的分頁功能就完成了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章