• MyBatis分页插件



    前言

    分页插件使用。


    一、分页插件

    1.分页插件使用步骤

    添加依赖

    
    <dependency>
    	<groupId>com.github.pagehelpergroupId>
    	<artifactId>pagehelperartifactId>
    	<version>5.2.0version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    配置分页插件

    • 在MyBatis的核心配置文件(mybatis-config.xml)中配置插件
      在这里插入图片描述
    <plugins>
    	
    	<plugin interceptor="com.github.pagehelper.PageInterceptor">plugin>
    plugins>
    
    • 1
    • 2
    • 3
    • 4

    2.分页插件的使用

    开启分页功能

    • 在查询功能之前使用PageHelper.startPage(int pageNum, int pageSize)开启分页功能
      • pageNum:当前页的页码
      • pageSize:每页显示的条数
    @Test
    public void testPageHelper() throws IOException {
    	InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
    	SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
    	SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
    	SqlSession sqlSession = sqlSessionFactory.openSession(true);
    	EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
    	//访问第一页,每页四条数据
    	PageHelper.startPage(1,4);
    	List<Emp> emps = mapper.selectByExample(null);
    	emps.forEach(System.out::println);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在这里插入图片描述

    分页相关数据

    方法一:直接输出
    @Test
    public void testPageHelper() throws IOException {
    	InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
    	SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
    	SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
    	SqlSession sqlSession = sqlSessionFactory.openSession(true);
    	EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
    	//访问第一页,每页四条数据
    	Page<Object> page = PageHelper.startPage(1, 4);
    	List<Emp> emps = mapper.selectByExample(null);
    	//在查询到List集合后,打印分页数据
    	System.out.println(page);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 分页相关数据:
      Page{count=true, pageNum=1, pageSize=4, startRow=0, endRow=4, total=8, pages=2, reasonable=false, pageSizeZero=false}[Emp{eid=1, empName='admin', age=22, sex='男', email='456@qq.com', did=3}, Emp{eid=2, empName='admin2', age=22, sex='男', email='456@qq.com', did=3}, Emp{eid=3, empName='王五', age=12, sex='女', email='123@qq.com', did=3}, Emp{eid=4, empName='赵六', age=32, sex='男', email='123@qq.com', did=1}]
      
      • 1
    方法二使用PageInfo
    • 在查询获取list集合之后,使用PageInfo pageInfo = new PageInfo<>(List list, intnavigatePages)获取分页相关数据
      • list:分页之后的数据
      • navigatePages:导航分页的页码数
    @Test
    public void testPageHelper() throws IOException {
    	InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
    	SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
    	SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
    	SqlSession sqlSession = sqlSessionFactory.openSession(true);
    	EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
    	PageHelper.startPage(1, 4);
    	List<Emp> emps = mapper.selectByExample(null);
    	PageInfo<Emp> page = new PageInfo<>(emps,5);
    	System.out.println(page);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 分页相关数据:
      PageInfo{
      pageNum=1, pageSize=4, size=4, startRow=1, endRow=4, total=8, pages=2, 
      list=Page{count=true, pageNum=1, pageSize=4, startRow=0, endRow=4, total=8, pages=2, reasonable=false, pageSizeZero=false}[Emp{eid=1, empName='admin', age=22, sex='男', email='456@qq.com', did=3}, Emp{eid=2, empName='admin2', age=22, sex='男', email='456@qq.com', did=3}, Emp{eid=3, empName='王五', age=12, sex='女', email='123@qq.com', did=3}, Emp{eid=4, empName='赵六', age=32, sex='男', email='123@qq.com', did=1}], 
      prePage=0, nextPage=2, isFirstPage=true, isLastPage=false, hasPreviousPage=false, hasNextPage=true, navigatePages=5, navigateFirstPage=1, navigateLastPage=2, navigatepageNums=[1, 2]}
      
      • 1
      • 2
      • 3
      • 4
    • 其中list中的数据等同于方法一中直接输出的page数据
    常用数据:
    • pageNum:当前页的页码
    • pageSize:每页显示的条数
    • size:当前页显示的真实条数
    • total:总记录数
    • pages:总页数
    • prePage:上一页的页码
    • nextPage:下一页的页码
    • isFirstPage/isLastPage:是否为第一页/最后一页
    • hasPreviousPage/hasNextPage:是否存在上一页/下一页
    • navigatePages:导航分页的页码数
    • navigatepageNums:导航分页的页码,[1,2,3,4,5]

    二、补充报错解决办法

    如果你在引入分页插件maven依赖后,然而在找不到PageHelper类 ,可以看看是否pom.xml报错,如果没报错,并且配置文件也没有错误,可以尝试在IDEA中搜索把这个添加,然后就可以了。
    在这里插入图片描述

    总结

    以上就是关于分页插件的使用。

  • 相关阅读:
    uniapp qiun charts H5使用echarts的eopts配置不生效
    【愚公系列】2022年11月 .NET CORE工具案例-使用MailKit使用IMAP协议进行邮件读取
    对象映射 - Mapping.Mapster
    VC++学习(5)——文本编程,插入符的初始化,图形插入符;文字始终在窗口;字符输入功能,回车换行,删除,左键定位;字体修改,字体平滑变色
    解决js加减乘除精度丢失问题
    数据分析可视化之模型介绍
    涂鸦TuyaOS SDK 网关历程-wifi配网
    R语言在生态环境领域中的应用
    【方案分享】抖音运营攻略:平台规则、爆款涨粉、运营技巧、内容变现.pdf(附下载链接)...
    PTA 7-170 公约数与公倍数
  • 原文地址:https://blog.csdn.net/weixin_62951900/article/details/132757991