mybatis中PageHelper的使用(分页)

引言:PageHelper是适用于MyBatis框架的一个分页插件,使用方式极为便捷,支持任何复杂的单表、多表分页查询操作。

一.开发步骤

1.引入依赖

pom.xml中引入PageHelper依赖。https://github.com/pagehelper/Mybatis-PageHelper


		com.github.pagehelper
		pagehelper
		5.1.10

2.配置MyBatis-config.xml

在mybatis-config.xml中添加


  	
  
    
        
        
    
  
  	...

 

PageInfo对象包含了分页操作中的所有相关数据

mybatis中PageHelper的使用(分页)_第1张图片

 

PageInfo.class是插件里的类,非常方便的调用,分页再次提高性能:

    //当前页
    private int pageNum;
    //每页的数量
    private int pageSize;
    //当前页的数量
    private int size;
 
    //由于startRow和endRow不常用,这里说个具体的用法
    //可以在页面中"显示startRow到endRow 共size条数据"
 
    //当前页面第一个元素在数据库中的行号
    private int startRow;
    //当前页面最后一个元素在数据库中的行号
    private int endRow;
 
    //总记录数
    private long total;
    //总页数
    private int pages;
    //结果集
    private List list;
 
    //前一页
    private int prePage;
    //下一页
    private int nextPage;
    //是否为第一页
    private boolean isFirstPage;
    //是否为最后一页
    private boolean isLastPage;
    //是否有前一页
    private boolean hasPreviousPage;
    //是否有下一页
    private boolean hasNextPage;
    //导航页码数
    private int navigatePages;
    //所有导航页号
    private int[] navigatepageNums;
    //导航条上的第一页
    private int navigateFirstPage;
    //导航条上的最后一页
    private int navigateLastPage;
 
    public PageInfo() {
        this.isFirstPage = false;
        this.isLastPage = false;
        this.hasPreviousPage = false;
        this.hasNextPage = false;
    }            

 

测试模块


 
    /**
     * 测试分页的方法
     */
    @Test
    public void empsTest() throws Exception {
        //模拟请求拿到返回值
        MvcResult result = mockMvc.perform(MockMvcRequestBuilders.get("/emps").param("pn", "10")).andReturn();
        //请求成功后,请求域中会有pageInfo,我们可以取出pageInfo进行验证。
        MockHttpServletRequest mockHttpServletRequest = result.getRequest();
        PageInfo pageInfo = (PageInfo) mockHttpServletRequest.getAttribute("pageInfo");
        System.out.println("当前页码:" + pageInfo.getPageNum());
        System.out.println("总页面:" + pageInfo.getPages());
        System.out.println("总记录数:" + pageInfo.getTotal());
        System.out.println("在页面连续显示的页码:");
        int[] page = pageInfo.getNavigatepageNums();
        for (int pn : page) {
            System.out.print(pn + " ");
        }
        System.out.println();
        //获取员工数据
        List employees = pageInfo.getList();
        for (Employee emp : employees) {
            System.out.println("员工ID:" + emp.getEmpId() + "员工姓名:" + emp.getEmpName() + "员工邮箱:" + emp.getEmail());
        }
    }

页面使用

1). 头部引用
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

2). 页面使用

新增 首页 //判断是否有前一页 上一页 ${i} //判断是否有下一页 下一页 尾页

 

你可能感兴趣的:(JAVAEE,前端,jsp,js,mybatis,PageHelper,分页)