MySQL查询分页


数据库查询分页: 
Pagination  //分页信息,请求内容包括{pageSize,pageNo,totalCount}  
PageData{Pagination, List} //返回信息   
  
通过Pagination 计算出 begin 和 end, 
    begin=pagination.getbegin(); 
    end=begin+pagesize       
 
真分页: order by id limit #{begin},#{pageSize}       
    SELECT * FROM table_name ORDER BY column_name LIMIT m,n    
    结果返回的是第m+1行到第n行的数据集。比如:     
    SELECT * FROM table_name ORADER BY column_name LIMIT 1,5    
    返回的是第2行到第5行的数据集
    
假分页:total为数据库查询出来的所有数量total=selectList();   
   {查询出所有放缓存,然后total.subList(begin, Math.min(end, total));   
   {缓存中取,list.range(begin , end-1)};  

Paginstion.java

package com.tcl.mie.loho.common.vo.page;

import com.alibaba.fastjson.annotation.JSONField;

public class Pagination {

    private Integer pageSize = 10;
    private Integer pageNo = 1;
    private Integer totalCount;
    private Integer totalPage;

    public Pagination() {
    }

    public Pagination(Integer pageSize, Integer pageNo) {
        setPageSize(pageSize);
        setPageNo(pageNo);
    }

    public void setPageSize(Integer pageSize) {
        if (pageSize != null) {
            this.pageSize = pageSize;
        }
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageNo(Integer pageNo) {
        if (pageNo != null) {
            this.pageNo = pageNo;
        }
    }

    public Integer getPageNo() {
        return pageNo;
    }

    @JSONField(serialize = false)
    public Integer getStart() {
        return pageNo < 1 ? 0 : (pageNo - 1) * pageSize;
    }

    public void setTotalCount(Integer totalCount) {
        this.totalCount = totalCount;
        totalPage = totalCount / pageSize + (totalCount % pageSize > 0 ? 1 : 0);
    }

    public Integer getTotalCount() {
        return totalCount;
    }

    public Integer getTotalPage() {
        return totalPage;
    }
}

 


  PageData.java 

package com.tcl.mie.loho.common.vo.page;

import java.util.Collections;
import java.util.List;

public class PageData<T> extends Pagination {

    private List<T> list;
    
    public PageData() {
           
    }
    
    public static <T> PageData<T> newInstance(Pagination p, Integer totalCount, List<T> list) {
        PageData<T> instance = new PageData<T>();
        instance.setPageSize(p.getPageSize());
        instance.setPageNo(p.getPageNo());
        instance.setTotalCount(totalCount);
        instance.setList(list);
        return instance;
    }

    public List<T> getList() {
        if (list == null) {
            return Collections.emptyList();
        }
        return list;
    }

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

  

  PageReponse.java

package com.top.common.vo.response;

import com.top.common.vo.page.PageData;

public class PageResponse<T> extends ResponseBase {
    
    private PageData<T> data;
    
    public PageResponse() {
    }
    
    public PageResponse(PageData<T> data) {
        this.data = data;
    }

    public PageData<T> getData() {
        return data;
    }

    public void setData(PageData<T> data) {
        this.data = data;
    }
}


你可能感兴趣的:(MySQL查询分页)