web分页查询
文章目录
- 分页查询
分页查询
分页优点:
- 数据清晰直观
- 不受数据量限制
- 页面不再冗长
分页查询步骤:
- 计算显示数据的总数量
- 确定每页显示的数据量
- 计算显示的页数
- 页数=总数量/每页显示的数据量[+1]
- 编写分页查询SQL语句
- 实现分页查询
总条数 12条 select count(id) from smbms_user
每页 5条
select *from smbms_user LIMIT 偏移量,每页固定条数
第一页 select *from smbms_user LIMIT 0,5
第二页 select *from smbms_user LIMIT 5,5
第三页 select *from smbms_user LIMIT 10,5
select *from smbms_user LIMIT (page-1)*5,5
偏移量=(当前页-1)*每页固定条数
总页数=int(总数据量/5)+1
总页数=总条数%5==0? (总数据量/5):(总数据量/5)+1
上一页 下一页 当前?页,每页5条,共?页
分页查询方法:
//查询整张表数据 pageSize每页条数 pyl偏移量
public List<User> listUser(int pyl,int pageSize);
service:
//查询整张表数据 pageSize每页条数 当前页pageNo
public List<User> listUser(int pageSize, int pageNo){
//偏移量=(当前页-1)*每页固定条数
int pyl=(pageNo-1)*5;
return userDao.listUser(pageSize,pyl);
}
//获取总数据量
public int sumNo(){
return userDao.sumNo();
}
servlet:
//初始化第一页
int pageNo=1;
if(request.getParameter("pageNo")!=null){
pageNo= Integer.parseInt(request.getParameter("pageNo"));
}
//调用分页方法
List<User> list=userService.listUser(5,pageNo);
//获取总条数
int totalnum=userService.sumNo();
//获取总页数
int sumPage=(totalnum%5==0?(totalnum/5):((totalnum/5)+1));
jsp页面:
<a
<c:if test="${pageNo>1}"> href="/userServlet?pageNo=${pageNo-1}" </c:if>
>
上一页
</a>
<a
<c:if test= "${pageNo<sumPage}"> href="/userServlet?pageNo=${pageNo+1}" </c:if>
>
下一页
</a>
每页展示5条,共${totalnum}条,共${sumPage}页,当前是第${pageNo}页