MyBatis使用分页插件

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()); }

效果展示:

 

posted @ 2024-02-05 22:16  和哗  阅读(103)  评论(0编辑  收藏  举报