通过 plugins标签实现分页助手的使用详解

需求

对查询的数据进行分页查询。

分析:MyBatis使用第三方的插件来对功能进行扩展,分页助手PageHelper是将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据。

实现步骤

1.导入通用PageHelper的坐标

2.在mybatis核心文件中配置PageHelper插件

3.编写测试分页代码

代码详解

1.导入通用PageHelper的坐标(依赖包)

<!-- 分页助手 -->

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>3.7.5</version>
</dependency>

<dependency>
    <groupId>com.github.jsqlparser</groupId>
    <artifactId>jsqlparser</artifactId>
    <version>0.9.1</version>
</dependency>

2.在mybatis核心文件中配置PageHelper插件

    <!--分页助手插件:插入配置的位置也十分重要,位置不对会报错-->
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageHelper">
            <!--value :指定方言,MYSQL等数据库的分页语法不同,这里是指定采用哪种数据库的分页语法-->
            <property name="dialect" value="mysql"/>
        </plugin>
    </plugins>

3.编写测试分页代码

 /**
     * 测试分页插件的使用
     */
    @Test
    public void test7() throws IOException {
        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
        SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
        SqlSession sqlSession = build.openSession();

        InterfaceEmp mapper = sqlSession.getMapper(InterfaceEmp.class);

        /*pageNum表示当前数据是第几页,pageSize表示当前也展示的数据条数*/
        PageHelper.startPage(1,2);
        List<Emp> emps = mapper.selectAll();
        for (Emp emp : emps) {
            System.out.println(emp);
        }

        /*如下也分页插件的其他相关函数*/
        PageInfo<Emp> pageInfo = new PageInfo<>(emps);
        System.out.println("总条数:" + pageInfo.getTotal());
        System.out.println("总页数:" + pageInfo.getPages());
        System.out.println("当前页:" + pageInfo.getPageNum());
        System.out.println("每页显示长度:" + pageInfo.getPageSize());
        System.out.println("是否第一页:" + pageInfo.isIsFirstPage());
        System.out.println("是否最后一页:" + pageInfo.isIsLastPage());

        sqlSession.close();
    }

知识点详解

该实现中主要是用到PageHelper标签,该标签的作用是在Mybatis中配置第三方插件。

原文地址:https://www.cnblogs.com/aloneme/p/14321428.html