springboot实现查询

springboot实现查询

1.Example//构建条件查询

1.1精确查询

@GetMapping("test")
@ApiOperation(value = "精确查询")
public ResponseDTO test1(WorkloadUseLogQueryDTO dto){
WorkloadUseLog workloadUseLog = new WorkloadUseLog();
BeanUtil.copyProperties(dto,workloadUseLog, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
Example<WorkloadUseLog> example = Example.of(workloadUseLog);
return ResponseDTO.succData(workloadUseLogDAO.findAll(example));
}
1.2.模糊查询
@GetMapping("test1")
@ApiOperation(value = "模糊查询")
public ResponseDTO test2(WorkloadUseLogQueryDTO dto){
WorkloadUseLog workloadUseLog = new WorkloadUseLog();
BeanUtil.copyProperties(dto,workloadUseLog, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
//实例化对象
ExampleMatcher matcher = ExampleMatcher.matching();
//设置搜索的字段,此处设置的是LinkName
matcher = matcher.withMatcher("linkName",ExampleMatcher.GenericPropertyMatchers.contains());
//最后用这个构造获取Example
Example<WorkloadUseLog> example = Example.of(workloadUseLog,matcher);
//返回查询结果
return ResponseDTO.succData(workloadUseLogDAO.findAll(example));
}
2.Pageable//构建分页查询
2.1排序

//首先创建排序
Sort sort;
//设置排序的方式以及排序的依据(数据库中的字段),例如按照创建时间降序排序
sort = Sort.by(Sort.Direction.DESC, QueryDTO.getSortBy());
//Pageable:封装了分页的参数:当前页,每页的显示的条数以及排序方式
Pageable pageable = PageRequest.of(QueryDTO.getPageNum() - 1 , workloadUseLogQueryDTO.getPageSize(), sort);
//返回查询结果
return ResponseDTO.succData(workloadUseLogDAO.findAll(pageable));
3.Page//用于储存查询的结果集
//实例化对象
Page<WorkloadUseLog> page;
//利用dao继承的的JpaRepository<WorkloadUseLog,String>中的方法进行查询
page = workloadUseLogDAO.findAll(example,pageable);
//设置响应的数据
List<WorkloadUseLog> list = page.getContent();
PageResultDTO<WorkloadUseLog> pageResultDTO = new PageResultDTO<>();
pageResultDTO.setContent(list);
pageResultDTO.setSize(page.getSize());
pageResultDTO.setTotalPages(page.getTotalPages());
pageResultDTO.setNumber(page.getNumber());
pageResultDTO.setTotalElements(page.getTotalElements());
//返回响应数据
return pageResultDTO;







logo
 
posted @ 2022-07-07 17:15  自信且66  阅读(1376)  评论(0)    收藏  举报