springblade 查询

阅读数:4 评论数:0

跳转到新版页面

分类

python/Java

正文

1、单条数据

/**
 * 详情
 */
@GetMapping("/detail")
public R<Blog> detail(Integer id) {
   Blog detail = service.getById(id);
   return R.data(detail);
}

2、多条数据

/**
 * 查询多条
 */
@GetMapping("/list")
public R<List<Blog>> list() {
   List<Blog> list = service.list();
   return R.data(list);
}

(1)增加查询条件

/**
 * 查询多条
 */
@GetMapping("/list")
public R<List<Blog>> list(Blog blog) {
   List<Blog> list = service.list(Wrappers.query(blog));
   return R.data(list);
}

(2)模糊查询

/**
 * 查询多条
 */
@GetMapping("/list")
public R<List<Blog>> list(Blog blog) {
   List<Blog> list = service.list(Condition.getQueryWrapper(blog));
   return R.data(list);
}

(3)QueryWrapper的lambda模式

/**
* 查询多条
*/
@GetMapping("/list")
public R<List<Blog>> list(@RequestParam Map<String, Object> blog) {
  List<Blog> list = service.list(Condition.getQueryWrapper(blog, Blog.class).lambda().orderByDesc(Blog::getBlogDate));
  return R.data(list);
}

更多用法参考:https://mp.baomidou.com/guide/wrapper.html

3、分页

/**
 * 分页
 */
@GetMapping("/page")
public R<IPage<Blog>> page(@ApiIgnore @RequestParam Map<String, Object> blog, Query query) {
   IPage<Blog> pages = service.page(Condition.getPage(query), Condition.getQueryWrapper(blog, Blog.class));
   return R.data(pages);
}

来看一下Query的主要组成

@Data
@Accessors(chain = true)
@ApiModel(description = "查询条件")
public class Query {

   /**
    * 当前页
    */
   @ApiModelProperty(value = "当前页")
   private Integer current;

   /**
    * 每页的数量
    */
   @ApiModelProperty(value = "每页的数量")
   private Integer size;

   /**
    * 排序的字段名
    */
   @ApiModelProperty(hidden = true)
   private String ascs;

   /**
    * 排序方式
    */
   @ApiModelProperty(hidden = true)
   private String descs;

}

所以如果我们要查第2页,并且每页数量为2条,那么我们就传/api/page?current=2&size=2