ssm mysql动态分页_SSM项目手动分页详解

环境:idea+mysql

首先,既然是mysql,那肯定会用到limit,用这个分页的确很方便。

第一步,编写sql语句

1

2 SELECT3 *4 FROM5 image6

7

8 status=#{status}9

10

11 AND examine=#{examine}12

13

14 AND sex=#{sex}15

16

17 limit #{start},#{pageSize}18

注意这里的参数,start是查询的第几页[start是从0开始],pageSize是每页显示的数据量

关于 当前页和下一页之间的规律关系,这里转载一篇博客,写的很详细。

第二步,编写controller

1 /**

2 *@paramexamine 审核状态3 *@paramgender 性别4 *@paramrequest5 *@return

6 */

7 @RequestMapping(method = RequestMethod.GET, value = "/avatar")8 publicString selectAvatar(Integer examine, Integer gender,9 HttpServletRequest request, Integer status,10 Integer currentPage) {1112 try{13 currentPage = (currentPage==null?1:currentPage);14 int total =image_examineService.getCount();15 int pageNum = 0;16 if(total%100==0){17 pageNum = total/100;18 }else{19 pageNum = total/100 + 1;20 }21 System.out.println("currentPage:"+currentPage+"total:"+total+"pageNum:"+pageNum);22

23 List list = imageService.selectImages(status, examine == null ? 3: examine,24 gender,(currentPage-1)*100,100);25 request.setAttribute("list", list);26 复制代码是不对滴,自己敲~

27 request.setAttribute("pageNum",pageNum);28 request.setAttribute("currentPage",currentPage);29 30 } catch(Exception e) {31 e.printStackTrace();32 }33 return "image";34 }

参数列表   第10行  只需要关注 currentpage,这个是从页面获取到的,我们需要以这个数值来计算上下页。

24行

(currentPage-1)*100,100 这个在我转载的博客中有解释,即 limit后面的两个参数

pageNum 意思是 数据一共多少页

14-20行是计算多少页,获取pageNum,计算方式很简单 select count(1) from xxx

第三步,编写页面参数

数据的遍历就不写了,直接写按钮

1

2 上一页

3 当前第${currentPage}页,共${pageNum}页4 下一页

5

你可能感兴趣的:(ssm,mysql动态分页)