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