MybatisPlus分页插件

问题:当项目中使用了MybatisPlus框架的时候,如何通过MybatisPlus插件实现分页查询

1. 分页逻辑的步骤

public PageResponseResult pageList(WmMaterialDto dto){
        // 1.生成page
        IPage<WmMaterial> rawPage = new Page<>(dto.getPage(), dto.getSize());

        // 2.封装wrapper 
        Integer userId = RequestContextUtil.get("id");
        LambdaQueryWrapper<WmMaterial> wrapper = Wrappers.<WmMaterial>lambdaQuery()
                .eq(dto.getIsCollection()!=null,
                        WmMaterial::getIsCollection,
                        dto.getIsCollection())
                .eq(WmMaterial::getUserId,userId);
        // 3.分页查询
        IPage<WmMaterial> resultPage = wmMaterialMapper.selectPage(rawPage, wrapper);

        // 4.封装结果对象
        PageResponseResult pageResponseResult = new PageResponseResult(dto.getPage(), dto.getSize(), (int) resultPage.getTotal());
        pageResponseResult.setData(resultPage.getRecords());

        // 5.返回结果
        return pageResponseResult;
    }

如果不配置MybatisPlusInterceptor,resultPage里会有全部的records,并且total为0

2. 配置分页插件

@Bean
    public MybatisPlusInterceptor paginationInnerInterceptor(){
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
        paginationInnerInterceptor.setDbType(DbType.MYSQL);

        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);
        return mybatisPlusInterceptor;
    }

3. models实体类

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

@Data
@TableName("wm_material")
public class WmMaterial implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 自媒体用户ID
     */
    @TableField("user_id")
    private Integer userId;

    /**
     * 图片地址
     */
    @TableField("url")
    private String url;

    /**
     * 素材类型
     0 图片
     1 视频
     */
    @TableField("type")
    private Short type;

    /**
     * 是否收藏
     0表示全部
     1表示收藏
     */
    @TableField("is_collection")
    private Short isCollection;

    /**
     * 创建时间
     */
    @TableField("created_time")
    private Date createdTime;

}

4. spring配置

mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  # 设置别名包扫描路径,通过该属性可以给包中的类注册别名
  type-aliases-package: com.xxx.xxx.xxx.pojos

相关推荐

  1. MybatisPlus

    2024-04-29 08:50:06       34 阅读
  2. MybatisPlus

    2024-04-29 08:50:06       51 阅读
  3. MyBatisPlus 解析】

    2024-04-29 08:50:06       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-29 08:50:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-29 08:50:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-29 08:50:06       82 阅读
  4. Python语言-面向对象

    2024-04-29 08:50:06       91 阅读

热门阅读

  1. C++笔记之memcpy探究

    2024-04-29 08:50:06       34 阅读
  2. rkt的原理及应用详解(四)

    2024-04-29 08:50:06       30 阅读
  3. C# var 关键字

    2024-04-29 08:50:06       35 阅读
  4. Doxygen

    2024-04-29 08:50:06       28 阅读
  5. vue使用axios解决跨域get和post请求

    2024-04-29 08:50:06       35 阅读
  6. Python:匿名函数lambda用法

    2024-04-29 08:50:06       34 阅读
  7. react 笔记

    2024-04-29 08:50:06       29 阅读
  8. Anaconda-用conda创建python虚拟环境常用命令

    2024-04-29 08:50:06       31 阅读
  9. mxnet.gluon.rnn及mxnet.symbol实现LSTM教程

    2024-04-29 08:50:06       33 阅读
  10. 阿里云RocketMQ消费MQTT消息

    2024-04-29 08:50:06       33 阅读
  11. LeetCode 第395场周赛个人题解

    2024-04-29 08:50:06       28 阅读