分页显示的步骤
一.确定分页页数
1. 获取总记录数
2. 根据每页显示记录数与总记录数计算总页数
public int getTotalPages(int count, int pageSize){
int totalpages =0;
totalpages =
(count%pageSize ==0)?(count/pageSize):(count/pageSize+1);
return totalpages;
}
二.分页SQL语句
1.伪列-rownum
① 由Oracle数据库表示自动创建
② 表示每一行记录的行号
2. 使用三层嵌套方式编写SQL
① 最内层:查询所有记录
② 中间层: 通过rownum的限定查询数量的上限
③ 最外层: 通过rownum的限定查询数量的下限
按时间排序后,显示第6-10条数据
String sql = "select * from (select rownum as r, t.* from ("+
"select news.* from news order by ncreatedate desc) t"+
" where rownum<=10) where r>5"
三.当前页的确认
1.获取当前页
思路:如果获取的页码为null,则设置当前页为首页,如果获取的页码不为null
则该页即为当前页码
//获取当前页
String currentPage = request.getParameter("pageIndex");
if(currentPage == null){
currentPage = "1";
}
int pageIndex = Integer.parseInt(currentPage);
四.分页设置的实现
根据已确认的当首页,设置上页和下页
根据总页数设置首页和末页
<a href="news_list.jsp?pageIndex=1">首页</a>
<a href="news_list.jsp?pageIndex=<%= pageIndex -1%>">上一页</a>
<a href="news_list.jsp?pageIndex=<%= pageIndex +1%>">下一页</a>
<a href="news_list.jsp?pageIndex=<%=totalpages%>">末页</a>
五.首页和末页的控制
String currentPage = request.getParameter("pageIndex");
if(currentPage == null){
currentPage = "1";
}
int pageIndex = Integer.parseInt(currentPage);
//对首页与末页进行控制
if(pageIndex < 1){
pageIndex = 1;
}else if(pageIndex > totalpages){
pageIndex = totalpages;
}