1. 分页插件介绍
-
分页可以将很多条结果进行分页显示
-
如果当前在第一页,则没有上一页;如果当前在最后一页,则没有下一页
-
需要明确当前是第几页,这一页中显示多少条结果
-
MyBatis分页插件总结
-
在企业级开发中,分页也是一种常见的技术,而目前使用的 MyBatis 是不带分页功能的,如果想实现分页的功能,需要我们手动编写 LIMIT 语句。但是不同的数据库实现分页的 SQL 语句也是不同的,所以手写分页成本较高,这个时候就可以借助分页插件来帮助我们实现分页功能
-
PageHelper:第三方分页助手,将复杂的分页操作进行封装,从而让分页功能变得非常简单
-
2. 分页插件的使用
MyBatis可以使用第三方的插件来对功能进行扩展,分页助手PageHelper是将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据
开发步骤:
1.导入与PageHelper的jar包
<!-- com.github.pagehelper/pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.1</version>
</dependency>
<!-- springboot 项目添加如下依赖starter spring springmvc -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
2.在mybatis核心配置文件中配置PageHelper插件
<!-- 注意:分页助手的插件 配置在通用mapper之前 -->
<!--集成分页助手插件-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
3.测试分页数据获取
@Test
public void pageTest(){
SqlSession sqlSession = MybatisUtils.getSqlSession(true);
//获取UserDao接口实现类对象
UserDao mapper = sqlSession.getMapper(UserDao.class);
//通过分页助手来实现分页功能
// 第一页:显示3条数据
PageHelper.startPage(1,3);
// 第一页:显示3条数据
// PageHelper.startPage(2,3);
//调用实现类的方法,接收结果
List<User> all = mapper.findAll();
for (User user : all) {
System.out.println(user);
}
}
3. 分页插件的参数获取
获得分页相关的其他参数:
//其他分页的数据
PageInfo<User> info=new PageInfo<>(all);
System.out.println("总条数:" + info.getTotal());
System.out.println("总页数:"+info.getPages());
int pageNum = info.getPageNum();//当前页
System.out.println("当前页:"+pageNum);
int pageSize = info.getPageSize();//每页显示的条数
System.out.println("每页显示条数:"+pageSize);
int prePage = info.getPrePage();//上一页
System.out.println("上一页:" +prePage);
int nextPage = info.getNextPage();//下一页
System.out.println("下一页:" +nextPage);
boolean isFirstPage = info.isIsFirstPage();//是否是第一页
System.out.println("是否是第一页:" +isFirstPage);
boolean isLastPage = info.isIsLastPage();//是否是最后一页
System.out.println("是否是最后一页:"+isLastPage);
MybatisUtils.closeSqlSession(sqlSession);
4. 分页插件知识小结
分页:可以将很多条结果进行分页显示。
1.分页插件 jar 包:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.3.2</version>
</dependency>
2.<plugins>:集成插件标签。
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
</plugin>
</plugins>
分页助手相关 API 1.PageHelper:分页助手功能类
startPage():设置分页参数
PageInfo:分页相关参数功能类。
getTotal():获取总条数
getPages():获取总页数
getPageNum():获取当前页
getPageSize():获取每页显示条数
getPrePage():获取上一页
getNextPage():获取下一页
isIsFirstPage():获取是否是第一页
isIsLastPage():获取是否是最后一页