MybatisPlus分页插件使用

一. 效果展示

二. 代码编写

2.1 pom

xml 复制代码
<dependency>
 	<groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.2</version>
</dependency>

2.2 添加配置类

java 复制代码
@Configuration
@MapperScan("scan.your.mapper.package")
public class MybatisPlusConfig {

    /**
     * 添加分页插件
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

2.3 前端选择条件实体

java 复制代码
@Data
public class ApproveGetDto {
    // 导入开始时间
    private String startTime;
    // 导入结束时间
    private String endTime;
    // 审批状态
    private Integer approveStatus;
    // 所属分部
    private List<String> division;
    // 人员范围
    private String personScope;
    // 导入人工号
    private String importPernr;
    // 离职员工工号
    private String quitPernr;
    // 当前页码
    private Integer currentPage;
    // 每页展示条数
    private Integer pageSize; 
}

2.4 mapper添加分页方法

java 复制代码
/**
 * 根据选择条件进行分页
 * @param page mybatus-plus提供的分页插件,必须位于第一个参数
 * @param approveGetDto 选择条件
 * @return vo对象
 */
Page<UserVo> selectPageVo(@Param("page") Page<UserVo> page,@Param("approveGetDto") ApproveGetDto approveGetDto);

2.5 sql映射文件

xml 复制代码
<select id="selectPageVo"  resultMap="UserVo">
    select * from t_user
    <where>
        <if test="startTime != null and endTime != null">
            AND importTime between #{startTime} and #{endTime}
        </if>
        <if test="division != null and division.size() > 0">
            AND division in
            <foreach item="item" collection="division" open="(" separator="," close=")">
                #{item}
            </foreach>
        </if>
        <if test="personScope != null and personScope != ''">
            AND person_scope = #{personScope}
        </if>
        <if test=" importPernr != null and importPernr != ''">
            AND originator_pernr = #{importPernr}
        </if>
        <if test="quitPernr != null and quitPernr != '' ">
            AND quit_Pernr = #{quitPernr}
        </if>
    </where>
</select>

2.6 service

java 复制代码
Page<UserVo> findPageVo(ApproveGetDto approveGetDto);

2.7 serviceImpl

java 复制代码
@Override
public Page<UserVo> selectPageVo(ApproveGetDto approveGetDto) {
     Page<UserVo> page = new Page<UserVo>(approveGetDto.getCurrentPage,approveGetDto.getPageSize);
     userMapper.selectPageVo(page,approveGetDto);
     return page;
}

2.8 controller

java 复制代码
@GetMapping("/page")
public Result<Page<UserVo>> pageInfo(ApproveGetDto approveGetDto){
    Page<UserVo> userVo = userService.findPageVo(approveGetDto);
    return Result.success(userVo);
}

2.9 前端获取参数

js 复制代码
getList() {
   this.loading = true
   this.queryParams.currentPage = this.currentPage
   this.queryParams.pageSize = this.pageSize
   approveDataList(this.queryParams).then(response => {
     if (response.code == 200) {
       if (response.data.total == 0) {
         this.approveDataList = response.data.rows
         this.$alert('未查询到符合条件的数据,请检查查询条件后重试!', '查询结果', {
           confirmButtonText: '确定',
         })
         this.loading = false
       } else {
         // 获取总记录数
         this.totalCount = response.data.total
         // 获取当前页数据
         this.approveDataList = response.data.records
         this.$message({
           message: '查询成功',
           type: 'success'
         })
         this.loading = false
       }
     } else {
       this.loading = false
       this.approveDataList = []
       this.$message({
         message: '查询失败',
         type: 'erro'
       })
     }
   })
}

三. 参数

java 复制代码
System.out.println(page.getRecords());//获取分页记录
System.out.println(page.getPages());//总页数
System.out.println(page.getTotal());//总记录数
System.out.println(page.hasNext());//是否有下一页
System.out.println(page.hasPrevious());//是否有上一页
相关推荐
九皇叔叔4 天前
【06】SpringBoot3 MybatisPlus 修改(Mapper)
java·spring boot·mybatis·mybatisplus
九皇叔叔7 天前
【02】SpringBoot3 MybatisPlus 加入日志功能
java·mysql·mybatis·日志·mybatisplus
子非鱼92113 天前
MyBatisPlus快速上手
数据库·spring boot·mybatisplus
DCTANT19 天前
【原创】使用更优雅的方式改造MyBatisPlus逻辑删除插件
spring boot·后端·mysql·kotlin·mybatis·mybatisplus
回忆是昨天里的海1 个月前
Spring boot接入视图时的问题
mysql·mybatisplus·视图
咘噜biu1 个月前
多租户动态数据源插件dynamic-datasource简介
java·mybatisplus·动态数据源·多租户
阿拉斯攀登2 个月前
MyBatis-Plus 全面介绍 & Spring Boot 集成实战
java·spring boot·mybatisplus·mp
LSL666_2 个月前
mybatisplus入门案例
数据库·mysql·mybatisplus
fanruitian2 个月前
springboot-mybatisplus-demo
spring boot·后端·mybatis·mybatisplus
草原印象2 个月前
Spring Boot Spring MVC MyBatis MyBatis Plus框架编写项目实战案例
spring boot·spring·mybatis·springmvc·mybatisplus