• PageHelper是MyBatis中非常方便的第三方分页插件。
• 官方文档:
https://github.com/pagehelper/MybatisPageHelper/blob/master/README_zh.md
• 我们可以对照官方文档的说明,快速的使用插件
使用步骤
• 1、导入相关包pagehelper-x.x.x.jar和 jsqlparser-0.9.5.jar。
pagehelper-5.0.0-rc.jar | jsqlparser-0.9.5.jar |
• 2、在MyBatis全局配置文件中配置分页插件。
<!-- plugins在配置文件中的位置必须符合要求,否则会报错,顺序如下: properties?, settings?, typeAliases?, typeHandlers?, objectFactory?,objectWrapperFactory?, plugins?, environments?, databaseIdProvider?, mappers? --> <plugins> <!-- com.github.pagehelper为PageHelper类所在包名 --> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <!-- 使用下面的方式配置参数,后面会有所有的参数介绍 --> <property name="param1" value="value1"/> </plugin> </plugins> |
• 3、使用PageHelper提供的方法进行分页
• 4、可以使用更强大的PageInfo封装返回结果
public void getEmps() throws Exception{ SqlSessionFactory sqlSessionFactory = getSqlSessionFactory(); SqlSession openSession = sqlSessionFactory.openSession(true); try { EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
Page<Object> page = PageHelper.startPage(1, 5);
List<Employee> emps = mapper.getEmps(); //传入要连续显示多少页 PageInfo<Employee> info = new PageInfo<>(emps, 5); for (Employee employee : emps) { System.out.println(employee); } /* System.out.println("当前页码:"+page.getPageNum()); System.out.println("总记录数:"+page.getTotal()); System.out.println("每页的记录数:"+page.getPageSize()); System.out.println("总页码:"+page.getPages()); */ //xxx System.out.println("当前页码:"+info.getPageNum()); System.out.println("总记录数:"+info.getTotal()); System.out.println("每页的记录数:"+info.getPageSize()); System.out.println("总页码:"+info.getPages()); System.out.println("是否第一页:"+info.isIsFirstPage()); System.out.println("连续显示的页码:"); int[] nums = info.getNavigatepageNums();
for (int i = 0; i < nums.length; i++) { System.out.println(nums[i]); } } finally { // TODO: handle finally clause openSession.close(); } } |
使用方法
https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md