Mybatis-plus实现分页以及模糊查询

前言

以前用mybatis实现分页查询以及模糊查询结合的功能,需要写mapper文件或者一些SQL语句,利用MybatisPlus可以快速的实现此类功能

案例

实现区域信息的分页以及模糊查询

请求 说明
请求方式 GET
请求路径 /area/paging/{currentPage}
请求参数 currntPage、size、areaInfo

areaInfo是区域类

代码

areaInfo

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class AreaInfo implements Serializable {
    
    

    private static final long serialVersionUID = 1L;

    /**
     * 区域ID
     */
    @TableId(value = "area_id", type = IdType.AUTO)
    private Integer areaId;

    private String build;

    private String floor;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")
    private LocalDateTime updateTime;


}

AreaInfoController 接口

package com.zzuli.controller;


import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zzuli.common.lang.Result;
import com.zzuli.entity.AreaInfo;
import com.zzuli.service.AreaInfoService;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.awt.geom.Area;
import java.util.List;

/**
 * <p>
 * 区域信息表 前端控制器
 * </p>
 */
@RestController
@RequestMapping("/area")
@CrossOrigin(origins = "*", maxAge = 3600)
public class AreaInfoController {
    
    

    @Autowired
    private AreaInfoService areaInfoService;



    //    分页
    @GetMapping("/paging/{currentPage}")
    public Result paging(@PathVariable("currentPage") Integer currntPage,
                         @RequestParam(required = false, defaultValue = "1")Integer size,
                         AreaInfo areaInfo) {
    
    

        Page<AreaInfo> page = new Page<>(currntPage, size);
        LambdaQueryWrapper<AreaInfo> wrapper = new LambdaQueryWrapper<>();
        wrapper.like(StringUtils.isNotBlank(areaInfo.getBuild()), AreaInfo::getBuild, areaInfo.getBuild());
        //  2.2 指定排序规则,按照更新时间倒序
        wrapper.orderByDesc(AreaInfo::getAreaId);
       areaInfoService.page(page,wrapper);
        return Result.succ(page);
    }

}

效果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/niulinbiao/article/details/129289955