首页 专题 文章 代码 归档
MybatisPlus自定义分页功能
2020.02.29 16:51 2020.02.29 16:51

1. 分页功能

MybatisPlus的分页功能还是比较简单和好用的,mybatis还要借助pagehelper来帮助我们分页,MybatisPlus自带了分页功能,下面说说如何使用;

1.1. 步骤1

需要分配一个分页插件,然后以bean的方式注入到Spring的容器中:

@Configuration
@EnableTransactionManagement
@MapperScan("com.lzpan.pass.mapper")
public class MybatisConfiguration {
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
        paginationInterceptor.setOverflow(true);
        // 设置最大单页限制数量,默认 500 条,-1 不受限制
        paginationInterceptor.setLimit(100);
        // 开启 count 的 join 优化,只针对部分 left join
        paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
        return paginationInterceptor;
    }
}

1.2. 步骤2

使用Page<T>IPage<T>两个方法即可:

QueryWrapper<BDisk> wrapper = new QueryWrapper<>();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String d = simpleDateFormat.format(date);
wrapper.eq("".equals(d), "created_at", d).orderByAsc("id");

Page<BDisk> page = new Page<>(pageNum, pageSize);
IPage<BDisk> iPage = bDiskMapper.selectPage(page, wrapper);
return iPage;

说明:

1、new Page<>对象,需要传入当前页数字,以及每页的数量;

2、调用mapper的selectPage方法,将上一步的new Page<>返回值传入,如果可以,当然还可以传入QueryWrapper

注意:mapper的selectPage默认是没有的,这需要你的mapper继承BaseMapper接口,这样才会有:

public interface XxxxMapper extends BaseMapper<Xxx> {

}

1.3. IPage对象

上两步操作完了后,会得到IPage对象,有关分页的结果以及查询结果都在这个对象里面了,此时只需要调用某个方法就能得到具体的值了;

如:

byPage.getCurrent();//当前页数
byPage.getSize();//当前页的数据量
byPage.getPages();//总页数
byPage.getRecords();//具体查询的结果,返回值是List<T>
byPage.getTotal();//总查询结果量

好了,愉快的使用MybatisPlus带来的分页功能吧!

本节阅读完毕! (分享
二维码图片 扫描关注我们哟