分页查询知识点
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; }
以上是关于分页查询知识点的主要内容,如果未能解决你的问题,请参考以下文章