MyBatis-plus 分页功能实现
一 、环境背景
二 、配置MyBatis-plus的内置分页类
三、场景应用——文章列表分页
3.1 核心函数
3.2 过程分析
3.3 实例代码
一 、环境背景
Springboot下实现博客的文章列表分页

二 、配置MyBatis-plus的内置分页类
为了让springboot得知我们配置了分页功能,需要创建配置类,进行以下配置

增加注解

@configuration 标注为配置注解
@MapperScan mybatis扫包,标注配置的应用包位置
@Configuration

//mybatis扫包

@MapperScan("com.bhy.blog.dao.mapper")

public class MybatisPlusConfig {
//分页插件
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
    MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
    interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
    return interceptor;

三、场景应用——文章列表分页
3.1 核心函数
<E extends IPage> E selectPage(E page, @Param("ew") Wrapper queryWrapper);
1
3.2 过程分析
传入页码信息 (第几页,一页多少条)

Page

设置查询条件

page= new Page<>(pageParams.getPage(),pageParams.getPageSize());
LambdaQueryWrapper
 queryWrapper = new LambdaQueryWrapper<>();
....

使用selectpage()函数,返回Page对象

Page

通过getRecords()函数从Page对象中获取article数组

articlePage = articleMapper.selectPage(page, queryWrapper);

List

将article数组传回前端

records = articlePage.getRecords();
return records


3.3 实例代码
该代码实现了 文章列表的分页查询,并遵循置顶优先,创建日期次优先的规则排序

@Override

public Result listArticle(PageParams pageParams) {

Page page= new Page<>(pageParams.getPage(),pageParams.getPageSize());
LambdaQueryWrapper
//是否置顶进行排序 创建日期排序
queryWrapper.orderByDesc(Article::getWeight,Article::getCreateDate);
Page<Article> articlePage = articleMapper.selectPage(page, queryWrapper);

List<Article> records = articlePage.getRecords();

return records