MyBatis-plus 分页功能实现
一 、环境背景
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<T>> E selectPage(E page, @Param("ew") Wrapper<T> queryWrapper);
3.2 过程分析
-
传入页码信息 (第几页,一页多少条)
Page<Article> page= new Page<>(pageParams.getPage(),pageParams.getPageSize());
-
设置查询条件
LambdaQueryWrapper<Article> queryWrapper = new LambdaQueryWrapper<>(); ....
-
使用
selectpage()
函数,返回Page对象Page<Article> articlePage = articleMapper.selectPage(page, queryWrapper);
-
通过
getRecords()
函数从Page对象中获取article数组扫描二维码关注公众号,回复: 14421528 查看本文章List<Article> records = articlePage.getRecords();
-
将article数组传回前端
return records
3.3 实例代码
该代码实现了 文章列表的分页查询,并遵循置顶优先,创建日期次优先的规则排序
@Override
public Result listArticle(PageParams pageParams) {
Page<Article> page= new Page<>(pageParams.getPage(),pageParams.getPageSize());
LambdaQueryWrapper<Article> queryWrapper = new LambdaQueryWrapper<>();
//是否置顶进行排序 创建日期排序
queryWrapper.orderByDesc(Article::getWeight,Article::getCreateDate);
Page<Article> articlePage = articleMapper.selectPage(page, queryWrapper);
List<Article> records = articlePage.getRecords();
return records;
}
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦