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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!