MyBatis使用分页插件
PageHelper是国内非常优秀的开源mybatis分页插件,它支持基本主流与常用的数据库,例如:mysql、Oracle、DB2等。
PageHelper在GitHub的项目地址:https://github.com/pagehelper/Mybatis-PageHelper
分页插件的原理
(1)在 MyBatis 执行SQL语句之前,拦截器可以获取 SQL 语句,进而实现分页操作。
(2)PageHelper 提供一个分页查插件,该插件可以解析分页参数,比如:当前页码,每页显示记录等,插件会将这些参数转换为一个 Limit 语句,用于数据库查询分页。
分页插件---PageHelper使用
(1)引入pageHelper依赖
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>最新版本</version> </dependency>
这里的最新版本是写 PageHelper 的版本
(2)修改 mybatis 配置文件-加入拦截器
<plugins> <!-- com.github.pagehelper为PageHelper类所在包名 --> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <!-- 使用下面的方式配置参数,后面会有所有的参数介绍 --> <property name="param1" value="value1"/> </plugin> </plugins>
(3)测试代码
@Test public void selectTest() throws Exception{ Reader resourceAsReader = Resources.getResourceAsReader("mybatis.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsReader); SqlSession sqlSession = sqlSessionFactory.openSession(); EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class); //指定起始页和每页大小,通过这个进行分页固定(它会将SQL语句添加limit) PageHelper.startPage(3,2); //这里进行查询所有 List<Employee> employee = employeeMapper.selectEmployee();
//将查询的内容放到 pageInfo 中方面获取查询中的所有信息 PageInfo<Employee> pageInfo = new PageInfo<Employee>(employee); System.out.println("总条数:"+pageInfo.getTotal()); System.out.println("页数量:" + pageInfo.getPageSize()); System.out.println("总页数: " + pageInfo.getPages()); System.out.println("每页实际的条数:" + pageInfo.getSize()); System.out.println("当前页的记录"+pageInfo.getList()); }
效果展示:
标签:插件,分页,System,PageHelper,println,MyBatis,pageInfo From: https://www.cnblogs.com/gzyhrc/p/18005287