Mybatis如何结合PageHelper进行分页?

21 篇文章 0 订阅
简介

PageHelper主要是用来处理分页

官网https://gitee.com/free/Mybatis_PageHelper (中文版)

它是基于MyBatis的分页插件

使用方法

其他版本可以在官网找到

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

在mybatis-config.xml中添加以下配置导入PageInterceptor,它是一个拦截器可以拦截mapper
(也可以使用spring下注入bean导入官网可见)

    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            
        </plugin>
    </plugins>

在application中配置mybatis-config.xml和扫描mapper
请添加图片描述
如果是SpringBoot项目不需要以上配置,只需要加入以下依赖即可

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.3.0</version>
</dependency>

在controller层下具体方法:

@RequestMapping("/allBook")
    public JSONObject list(){
        //页码,个数(只能用于离他最近的一个mapper的select===》如下面的queryAllBook)
        PageHelper.startPage(1,10);
        List<Books> list = bookService.queryAllBook();

        List<Books> list2 = bookService.queryAllBook();
        //将一些其他分页信息放入
        PageInfo<Books> booksPageInfo = new PageInfo<>(list);
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("data",booksPageInfo);

        return jsonObject;
    }

注意:startPage方法只能用于最近的一个mapper查询

可以看到下图中第一个list是十条数据进行分页了,第二个list2就是16条并没分页
请添加图片描述
如果有控制台日志打印sql的话可以看到,它是自动给我们拼接了一个limit 然后传了一个参数10
请添加图片描述
这里注意了在mapper下写sql时候一定不要有分号不然就会出现以下情况
请添加图片描述
下面的参数就是PageInfo里自带的参数,可以进去看看,注释都是中文的
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值