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 @   自信且66  阅读(1329)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示