前言
以前用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);
}
}