【Mybatis】利用分页助手插件实现分页功能

之前我们要实现分页查询的功能十分麻烦,需要先创建一个pageBean对象,然后有当前页,总页数,总条数,每页显示条数以及页面包含的记录集合等等对象。

但是现在使用Mybatis实现这个功能可以很容易实现。

首先导入一个pagehepler插件

<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>

然后在核心配置文件中注册该插件

<!--    配置分页助手插件-->
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageHelper">
            <property name="dialect" value="mysql"/>
        </plugin>
    </plugins>

测试一下: 实现查询第一页的记录,每页展示两条记录

@Test
    public void Test4() throws IOException {
        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);


        //设置分页的相关参数 当前页和每页显示的条数
        PageHelper.startPage(1, 2);

        List<User> all = mapper.findAll();
        for (User user : all) {
            System.out.println(user);
        }

    }

那具体信息如何获取呢?

可以通过以下方法获得

//获得与分页相关参数
        PageInfo<User> pageInfo = new PageInfo<User>(all);
        System.out.println("当前页:"+pageInfo.getPageNum());
        System.out.println("每页显示条数:"+pageInfo.getPageSize());
        System.out.println("总条数:"+pageInfo.getTotal());
        System.out.println("总页数:"+pageInfo.getPages());
        System.out.println("上一页:"+pageInfo.getPrePage());
        System.out.println("下一页:"+pageInfo.getNextPage());
经验分享 程序员 微信小程序 职场和发展