1.导入PageHelper需要的坐标
使用PageHelper需要导入两个坐标:pagehelper和jsqlparser
2.在MyBatis核心配置文件中配置PageHelper插件
我导入的pagehelper是5.3.0版本,所以在MyBatis的配置文件中进行如下配置:
<!--配置分页助手插件-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
3.测试分页数据获取
只需要在findAll()之前加上一条语句就好了``PageHelper.startPage(1, 3);```,干净又卫生
下面的测试数据的全部代码:
public class MapperTest {
@Test
public void testQuery() throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
// openSession()的autoCommit参数默认值为false
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
// 设置分页的相关参数 当前页 + 每页显示的条数
PageHelper.startPage(1, 3);
List<User> users = mapper.findAll();
for (User user : users) {
System.out.println(user);
}
sqlSession.close();
}
4.获取分页相关的信息
只需要把之前查询得到的结果users传入PageInfo的一个有参构造器创建pageInfo对象,
然后就可以用pageInfo来获取各种分页相关的信息了:
public class MapperTest {
@Test
public void testQuery() throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
// openSession()的autoCommit参数默认值为false
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
// 设置分页的相关参数 当前页 + 每页显示的条数
PageHelper.startPage(1, 3);
List<User> users = mapper.findAll();
for (User user : users) {
System.out.println(user);
}
// 获得分页相关的参数
PageInfo<User> pageInfo = new PageInfo<User>(users);
System.out.println("当前页:" + pageInfo.getPageNum());
System.out.println("每页显示条数:" + pageInfo.getPageSize());
System.out.println("总条数:" + pageInfo.getTotal());
System.out.println("总页数:" + pageInfo.getPages());
System.out.println("上一页:" + pageInfo.getPrePage());
System.out.println("下一页:" + pageInfo.getNextPage());
System.out.println("是否是第一页:" + pageInfo.isIsFirstPage());
System.out.println("是否是最后一页:" + pageInfo.isIsLastPage());
sqlSession.close();
}
}