计算确定数据表一共分几页:101/pageSize=100/10=10页。rows = select count(1) from users;方法1:pageCount = rows/pageSize + (rows%pageSize==0?0:1); 方法2:pageCount = (rows+ (pageSize-1))/(pageSize);public void doGet(HttpServletRequest req,
计算确定数据表一共分几页: 101/pageSize=100/10=10页。 rows = select count(1) from users; 方法1:pageCount = rows/pageSize + (rows%pageSize==0?0:1); 方法2:pageCount = (rows+ (pageSize-1))/(pageSize); public void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException { //第一步:定义每页显示多少行 int pageSize = 10; try{ //第二步:获取数据表中有多少行 QueryRunner run = new QueryRunner(DataSourceUtils.getDatasSource()); String sql = "select count(*) from users"; Object o = run.query(sql,new ScalarHandler()); int rows = Integer.parseInt(o.toString()); //第三步:计算一共分多少页 int pageCount= rows/pageSize+(rows%pageSize==0?0:1); //将页数放到req req.setAttribute("pageCount",pageCount); }catch(Exception e){ e.printStackTrace(); } //转发到 req.getRequestDispatcher("/jsps/show.jsp").forward(req, response); }
第四步:分析limit的开始位置
用户请求的面码
start
算法:
Limit 0,pageSize
Start
= (currentPage-1)*pageSize
Limit 10,pageSize
Limit 20,pageSize
第五步:对分页以后页码再分页
每个页面,最多显示10个页码
pageNum=10;
startNo
endNo
当前页码
页码范围
算法
1
1~10
If(currentPage
1~10
2
3
4
5
6
2~11
6-4=2 =
6-(pageNum/2-1)=2 = startNo
endNo = startNo+(pageNum-1)=11
7
3~12
8
4~13
9
10
11
11-4 = 7
endNo = 7+9=16
endNo = 11;
startNo = 2 = endNo-(pageNum-1);
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did95695