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 的内容)
