mybatis之分页助手的使用

mybatis之分页助手的使用

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

注意版本的问题:

  •   pagehelper的版本问题,版本为5.0之后的插件使用的接口为:com.github.pagehelper.PageInterceptor

  •   版本为4…0.0之前的版本采用的接口为:com.github.pagehelper.PageHelper

1.1. 开发步骤

1.1.1. 导入通用PageHelper的坐标

在pom.xml中导入通用PageHelper坐标


        <!-- 分页助手的依赖 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.4</version>
        </dependency>
        <dependency>
            <groupId>com.github.jsqlparser</groupId>
            <artifactId>jsqlparser</artifactId>
            <version>0.9.1</version>
        </dependency>

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

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


<!-- 注意:分页助手的插件  配置在通用馆mapper之前 注意版本不同使用的接口不同,此处为5.1.4的版本的对应接口-->
        <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>

1.1.3. 分页助手的具体使用

然后你就在你所需要使用到的地方进行相关的使用即可,此处在测试中进行分页代码的实现,展示相关的API

此处直接用 PageHelper调用它的静态方法startPage(当前页,显示的条数)即可。

代码的实现:

    @Test
    public void test1() 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> list = mapper.findAll();

        for (User user : list) {

            System.out.println(user);
        }



    }

获取分页的其他参数:

    //其他分页的数据
    
    //此处只需要在建立PageInfo类,选择当前的类型,传入以上装载分页的数据的list集合即可
    PageInfo<User> pageInfo = new PageInfo<User>(list);
    
    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());

1.2. 使用分页助手的注意事项

1.PageHelper只对紧跟着的第一个查询的SQL语句起作用

  若一个方法中涉及到多个查询,需要小心,避免为不需要分页的添加了分页,而真正需要分页的却没有被分页

2.分页插件不支持带有for update语句的分页

  对于带有for update的sql,会抛出异常,对于这样的sql建议手动分页,毕竟这样的sql需要注意

3.分页插件不支持关联结果查询

  分页插件不支持关联结果查询,但是支持关联嵌套查询。只会对主sql进行分页,嵌套的sql不会被分页。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值