1.1 plugins标签
MyBatis可以使用第三方的插件来对功能进行扩展,分页助手PageHelper是将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据。
1.2 使用PageHelper开发步骤
① 导入通用PageHelper的坐标
② 在mybatis核心配置文件中配置PageHelper插件
③ 测试分页数据获取
接下来我们详细演示一遍。
① 导入通用PageHelper的坐标
<!-- 导入分页坐标-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>3.7.5</version>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>0.9.1</version>
</dependency>
② 在mybatis核心配置文件中配置PageHelper插件
<!-- 配置分页助手插件-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
这里需要注意
如果上面PageHelper坐标导的是5.XXX版本,需要在上述标红的地方将PageHelper改成PageInterceptor,第二行的property属性也可以注掉。
③ 测试分页数据获取
通过调用PageHelper的startPage接口就可以设置当前页和每页显示条数。
@Test
public void test03() throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//设置分页相关参数, 当前页+每页显示条数
PageHelper.startPage(1,5);
List<User> userList = mapper.findAll();
sqlSession.close();
for (User user : userList) {
System.out.println(user);
}
}
看控制台输出
可以看出,程序查询出了表中的前五条数据。
这里需要注意一个点,分页使用的关键字是:limit
1.3 分页相关的其他参数
我们通过代码进行演示一下,在上述测试代码添加如下代码
PageInfo<User> pageInfo = new PageInfo<User>(userList);
System.out.println("当前页:"+pageInfo.getPageNum());
System.out.println("每页显示条数:"+pageInfo.getPageSize());
System.out.println("总条数:"+pageInfo.getTotal());
System.out.println("上一页:"+pageInfo.getPrePage());
System.out.println("下一页:"+pageInfo.getNextPage());
System.out.println("是否是第一个:"+pageInfo.isIsFirstPage());
System.out.println("是否是最后一个:"+pageInfo.isIsLastPage());
ok,接下来我们看一下控制台输出