springboot+jpa 实现分页分页实体controller Servicedao

2020-12-07 14:22:50 浏览数 (1)

分页实体

代码语言:javascript复制
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

代码语言:javascript复制
/**
     * 分页
     * @param pageNum   页码
     * @param pageSize  页面大小
     * @return PageUtil 里面有共有多少条数 和列表
     */
    @RequestMapping("getAllCommodity")
    public PageUtil getAllCommodity(Integer pageNum, Integer pageSize){
        return allService.getAll(pageNum,pageSize);
    }

Service

代码语言:javascript复制
 /**
     * 采购商品维护列表
     * @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

查询总条数

代码语言:javascript复制
 /**
     * 获取总条数
     * @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());
    }

查询页面内容

代码语言:javascript复制
 /**
     * 查询页面内容
     * @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;
    }

0 人点赞