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带来的分页功能吧!
本节阅读完毕!
(分享)