springboot+jpa 實現分頁

分頁實體

import java.util.ArrayList;
import java.util.List;

/**
 * 分頁工具
 */
public class PageUtil {

    /**
     * 每頁大小
     */
    private int pageSize;

    /**
     * 當前頁爲第幾頁
     */
    private int number;

    /**
     * 總共有多少頁
     */
    private int totalPages;

    /**
     * 總共有多少條數據
     */
    private int totalElements;

    /**
     * 數據
     */
    private List content = new ArrayList();

    public int getPageSize() {
        return pageSize;
    }

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

    public int getNumber() {
        return number;
    }

    public void setNumber(int number) {
        this.number = number;
    }

    public int getTotalPages() {
        return totalPages;
    }

    public void setTotalPages(int totalPages) {
        this.totalPages = totalPages;
    }

    public int getTotalElements() {
        return totalElements;
    }

    public void setTotalElements(int totalElements) {
        this.totalPages = totalElements % pageSize == 0 ? totalElements/pageSize : (totalElements/pageSize) + 1;
        this.totalElements = totalElements;
    }

    public List getContent() {
        return content;
    }

    public void setContent(List content) {
        this.content = content;
    }
}

controller 

/**
     * 分頁
     * @param pageNum   頁碼
     * @param pageSize  頁面大小
     * @return PageUtil 裏面有共有多少條數 和列表
     */
    @RequestMapping("getAllCommodity")
    public PageUtil getAllCommodity(Integer pageNum, Integer pageSize){
        return allService.getAll(pageNum,pageSize);
    }

Service

/**
     * 採購商品維護列表
     * @param pageNum   頁碼
     * @param pageSize  頁面大小
     * @return 
     */
    @Override
   public  PageUtil getAllCommodity(Integer pageNum, Integer pageSize){
        PageUtil pageUtil=new PageUtil();
        //查詢數據總條數
        int totalNumbr=allDao.getTotalNumber(gongyingshang,status,guanjianzi);
        //頁面大小
        pageUtil.setPageSize(pageSize);
        //信息總條數
        pageUtil.setTotalElements(totalNumbr);
        //當前爲第幾頁
        pageUtil.setNumber(pageNum);
        //頁面內容
        pageUtil.setContent(allDao.getCommodity((pageNum-1)*pageSize,pageSize));
        return pageUtil;
    }

dao

    查詢總條數

/**
     * 獲取總條數
     * @return
     */
    @Override
    public int getTotalNumber(Integer gongyingshang, Integer status, Integer guanjianzi) {
        StringBuffer stringBuffer=new StringBuffer("select count(1) from 表名 where 1=1 ");
        Object result=entityManager.createNativeQuery(stringBuffer.toString()).getSingleResult();
   
        return Integer.parseInt(result.toString());
    }

    查詢頁面內容

/**
     * 查詢頁面內容
     * @param pageNum
     * @param pageSize
     * @return
     */
    @Override
    public List<Commodity> getCommodity( Integer pageNum, Integer pageSize) {

       StringBuffer stringBuffer=new StringBuffer("select 字段名稱 from 表名 where 1=1 ");
        //XXXX對應的實體類名
        List<XXX> result=null;

     stringBuffer.append(" limit :page,:size");
           
  
 result=entityManager.createNativeQuery(stringBuffer.toString()).setParameter("page",pageNum).setParameter("size",pageSize).getResultList();
        return  result;
    }
相關文章
相關標籤/搜索