• 12、分页插件


    12、分页插件

    limit index,pageSize
    pageSize:每页显示的条数
    pageNum:当前页的页码
    index:当前页的起始索引,index=(pageNum-1)*pageSize
    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 8,4

    效果:
    首页 上一页 2 3 4 5 6 下一页 末页

    12.1、分页插件的使用步骤

    ①添加依赖

    <dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.2.0</version>
    </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    配置分页插件

    在MyBatis的核心配置文件中配置插件

    <plugins>
    <!--设置分页插件-->
    <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
    </plugins>
    
    • 1
    • 2
    • 3
    • 4
    1. 在查询功能之前使用PageHelper.startPage(int pageNum, int pageSize)开启分页功能

    pageNum:当前页的页码
    pageSize:每页显示的条数

    1. 在查询获取list集合之后,使用PageInfo pageInfo = new PageInfo<>(List list, int navigatePages)获取分页相关数据

    list:分页之后的数据
    navigatePages:导航分页的页码数

    1. 分页相关数据

    PageInfo{
    pageNum=8, pageSize=4, size=2, startRow=29, endRow=30, total=30, pages=8,
    list=Page{count=true, pageNum=8, pageSize=4, startRow=28, endRow=32, total=30,
    pages=8, reasonable=false, pageSizeZero=false},
    prePage=7, nextPage=0, isFirstPage=false, isLastPage=true, hasPreviousPage=true,
    hasNextPage=false, navigatePages=5, navigateFirstPage4, navigateLastPage8,
    navigatepageNums=[4, 5, 6, 7, 8]
    }
    pageNum:当前页的页码
    pageSize:每页显示的条数
    size:当前页显示的真实条数
    total:总记录数
    pages:总页数
    prePage:上一页的页码
    nextPage:下一页的页码
    isFirstPage/isLastPage:是否为第一页/最后一页
    hasPreviousPage/hasNextPage:是否存在上一页/下一页
    navigatePages:导航分页的页码数
    navigatepageNums:导航分页的页码,[1,2,3,4,5]

    测试:

    public class PageTest {
    
        @Test
        public void testPage(){
            SqlSession sqlSession = sqlSessionUtil.getSqlSession();
            EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
    
    //        查询功能之前开启分页功能
            Page<Object> pages = PageHelper.startPage(1, 4);
            List<Emp> emps = mapper.selectByExample(null);
    //        查询功能之后可以获取分页相关的所有数据
            PageInfo<Emp> empPageInfo = new PageInfo<>(emps, 5);
            emps.forEach(System.out::println);
            System.out.println(empPageInfo);
        }
    
    
    //    PageInfo{
    //    pageNum=1, pageSize=4, size=4,
    //    startRow=1, endRow=4, total=42,
    //    pages=11,
    //    list=Page{count=true, pageNum=1, pageSize=4, startRow=0, endRow=4, total=42, pages=11, reasonable=false, pageSizeZero=false}[Emp{empId=1, empName='张三', age=18, gender='男', deptId=1}, Emp{empId=2, empName='李四', age=19, gender='男', deptId=2}, Emp{empId=3, empName='王五', age=20, gender='女', deptId=1}, Emp{empId=4, empName='小花', age=18, gender='女', deptId=2}],
    //    prePage=0, nextPage=2, isFirstPage=true, isLastPage=false,
    //    hasPreviousPage=false, hasNextPage=true,
    //    navigatePages=5, navigateFirstPage=1, navigateLastPage=5, navigatepageNums=[1, 2, 3, 4, 5]}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
  • 相关阅读:
    网络安全(黑客技术)自学笔记
    React源码分析1-jsx转换及React.createElement
    Android布局转图片Bitmap
    Flink之Watermark策略代码模板
    eval详解
    数据库索引种类
    同城配送管理系统
    GaussDB(for MySQL) :Partial Result Cache,通过缓存中间结果对算子进行加速
    项目管理岗,HR和PMO青睐的点有哪些差异?
    Scrapy爬虫框架实战
  • 原文地址:https://blog.csdn.net/qq_44774198/article/details/126071313