分页查询知识点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分页查询知识点相关的知识,希望对你有一定的参考价值。

1.在mysql里面使用分页查询sql语句:

使用limit关键字

select * from user limit 0,3;

limit关键字后面有两个参数,第一个参数为开始位置,第二个参数为每页显示记录数

2.分页相关属性

2.1当前页

2.2每页显示记录数

2.3总记录数

2.4总页数

  总记录数除以每页显示记录数

  比如10条记录,每页显示5条,有2页

  比如10条记录,每页显示7条,有2

 

  总记录数除以每页显示记录数,如果能够整除,结果是相除结果.如果不能整除,结果是相除的结果+1.

2.5开始位置

  计算公式   (当前页-1*每页显示记录数 

    当前页      开始位置    每页记录数

      1            0             3

      2            3             3

      3            6             3

 

 代码:

domain:

public class PageBean {
    // 每页显示记录数
    private Integer pageSize;
    // 当前页
    private Integer currentPage;
    // 总记录数
    private Long totalCount;
    // 总页数
    private Long totalPage;
    // 开始位置
    private Integer begin;
    // 每页数据的list集合
    private List<Customer> list;
}

service:

    public PageBean listpage(int currentPage, String custName, int pageSize2) {
        // TODO Auto-generated method stub
        PageBean pageBean = new PageBean();
        pageBean.setCurrentPage(currentPage);
        //总数量
        Long totalCount = customerDAO.findCount(custName);
        pageBean.setTotalCount(totalCount);
        //每页预计显示数量
        int pageSize = pageSize2 ; 
        long totalPage = 0;

        if (totalCount%pageSize ==0) {
            //整除
            totalPage =(totalCount/pageSize);

            
        }else {
            //不整除
            totalPage =(totalCount/pageSize)+1;

        }
        pageBean.setTotalPage(totalPage);
        int begin = (int) ((currentPage-1)*pageSize);
        List<Customer> list = customerDAO.findAllPage(begin,pageSize,custName);
        pageBean.setList(list);
        
        return pageBean;
    }

dao:

    public Long findCount(String custName) {
        // TODO Auto-generated method stub
        List<Long> list = (List<Long>) hibernateTemplate.find("SELECT COUNT(*) FROM Customer WHERE custname LIKE ?","%"+custName+"%");
        System.err.println(list);
        if (list != null && list.size() != 0) {
            Long l = list.get(0);
            return l;
        }
        return 0L;
    }

    public List<Customer> findAllPage(int begin, int pageSize,String custName) {
        // TODO Auto-generated method stub
        DetachedCriteria criteria = DetachedCriteria.forClass(Customer.class);
        criteria.add(Restrictions.like("custName", "%"+custName+"%"));

        List<Customer> list = (List<Customer>) hibernateTemplate.findByCriteria(criteria, begin, pageSize);

        return list;
    }

 

以上是关于分页查询知识点的主要内容,如果未能解决你的问题,请参考以下文章

nodejs mongoose 分页查询

ThinkPhp框架:分页查询和补充框架知识

Hibernate分页查询的知识

数据库:SQLServer分页查询整理

modx - 当我在同上片段中使用“&documents =”参数时,分页不起作用

mysql数据库分页