持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第16天,点击查看活动详情
分页插件
limit index pageSize
index:当前页的起始索引 index=(pageNum-1)*pageSize
pageSize:每页显示的条数
pageNum:当前页的页码
count:总记录数
totalPage:总页数
totalPage=count/pageSize;
if(count%pageSize!=0){
totalPage += 1}
pageSize=4 pageNum=1 index=0 limit 0,4
pageSize=4 pageNum=3 index=8 limit 8,4
pageSize=4 pageNum=6 index=20 limit 20,4
分页插件的使用步骤
1.添加依赖
pom.xml
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
2.配置分页插件
在mybaitis-config核心配置文件中配置分页插件
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
当出现sql语句 select * from t_emp limit 4 limit表达的是第一页显示4条limit会默认为0
数据库的数据
@Test
public void testPage(){
SqlSession sqlSession = SqlSessionUtil.getSqlSession();
EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
//查询功能之前开启分页功能
PageHelper.startPage(1,4);
List<Emp> list=mapper.selectByExample(null);
list.forEach(System.out::println);
sqlSession.close();
}
代码效果只显示了第一页的4条数据
将PageHelper.startPage(1,4)中的1改为5
@Test
public void testPage(){
SqlSession sqlSession = SqlSessionUtil.getSqlSession();
EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
//查询功能之前开启分页功能
PageHelper.startPage(5,4);
List<Emp> list=mapper.selectByExample(null);
list.forEach(System.out::println);
sqlSession.close();
}
会发现当查询第一页时
limit只有一个问号 这就是上面提到的limit只有一个问号时limit的索引值默认为0
查询第五页时limit的查询语句就是平常的写法
通过分页插件获取分页相关数据
为了效果更加明显又增了一部分数据
将分页功能的数据输出得到的
将导航分页的页码数设置为5
输出的PageInfo
含义:
pageNum:当前页的页码
pageSize:每页显示的条数
size:当前页显示的真实条数
total:总记录数
pages:总页数
prePage:上一页的页码
nextPage:下一页的页码
isFirstPage/isLastPage:是否为第一页/最后一页
hasPreviousPage/hasNextPage:是否存在上一页/下一页
navigatePages:导航分页的页码数
navigatepageNums:导航分页的页码,[1,2,3,4,5]