MyBatis —— 13、分页插件

1、分页插件的使用步骤

1.1、添加插件

<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
<dependency>
	<groupId>com.github.pagehelper</groupId>
	<artifactId>pagehelper</artifactId>
	<version>5.2.0</version>
</dependency>

1.2、配置分页插件

    在MyBatis的核心配置文件(mybatis-config.xml)中配置插件,注意位置在 typeAliases 和
<plugins>
	<!--设置分页插件-->
	<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>

2、分页插件的使用

2.1、在查询功能之前使用 PageHelper.startPage(int pageNum, int pageSize) 开启分页功能

① 测试方法:

@Test
    public void testPageHelper(){
        try {
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
            SqlSession sqlSession = sqlSessionFactory.openSession(true);
            EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);

            PageHelper.startPage(1, 4);

            List<Emp> emps = mapper.selectByExample(null);
            emps.forEach(emp -> System.out.println(emp));

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

② 输出结果:

2.2、获取分页的相关数据

    常用数据: pageNum:当前页的页码 pageSize:每页显示的条数 size:当前页显示的真实条数 total:总记录数 pages:总页数 prePage:上一页的页码 nextPage:下一页的页码 isFirstPage/isLastPage:是否为第一页/最后一页 hasPreviousPage/hasNextPage:是否存在上一页/下一页 navigatePages:导航分页的页码数 navigatepageNums:导航分页的页码,[1,2,3,4,5]

2.2.1、通过 PageHelper.startPage(int pageNum, int pageSize) 获取对应对象并输出

① 测试方法:

② 出结果:

page 的相关数据:

2.2.2、通过获取 PageInfo 对象

    在查询获取list集合之后,使用PageInfo<T> pageInfo = new PageInfo<>(List<T> list, intnavigatePages)获取分页相关数据 list:分页之后的数据 navigatePages:导航分页的页码数

① 测试方法:

② 输出结果

PageInfo 相关数据:(注:原输出没有换行,这里换行是为了将 list 与其他数据分隔,其中 list 就是上面 page 的内容)

经验分享 程序员 微信小程序 职场和发展