MyBatis学习之分页助手PageHelper

本文介绍了如何在MyBatis项目中使用PageHelper进行分页操作,包括导入所需坐标、配置PageHelper插件、实现分页数据查询及获取分页信息的方法,帮助开发者高效管理数据库查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.导入PageHelper需要的坐标

使用PageHelper需要导入两个坐标:pagehelper和jsqlparser

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

我导入的pagehelper是5.3.0版本,所以在MyBatis的配置文件中进行如下配置:

<!--配置分页助手插件-->
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
    </plugins>

3.测试分页数据获取

只需要在findAll()之前加上一条语句就好了``PageHelper.startPage(1, 3);```,干净又卫生
下面的测试数据的全部代码:

public class MapperTest {

    @Test
    public void testQuery() throws IOException {
        InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        // openSession()的autoCommit参数默认值为false
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

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

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

        sqlSession.close();
    }

4.获取分页相关的信息

只需要把之前查询得到的结果users传入PageInfo的一个有参构造器创建pageInfo对象,
然后就可以用pageInfo来获取各种分页相关的信息了:

public class MapperTest {

    @Test
    public void testQuery() throws IOException {
        InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        // openSession()的autoCommit参数默认值为false
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

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

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

        // 获得分页相关的参数
        PageInfo<User> pageInfo = new PageInfo<User>(users);
        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());
        System.out.println("是否是第一页:" + pageInfo.isIsFirstPage());
        System.out.println("是否是最后一页:" + pageInfo.isIsLastPage());

        sqlSession.close();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值