springBoot + date-jpa 后台带查询条件急速分页教程

亦凉 2022-05-11 05:16 370阅读 0赞

因为是自己做笔记,所以话不多说,直接看代码

做了个承载分页属性的实体

  1. import java.io.Serializable;
  2. import lombok.Data;
  3. @Data
  4. public class PageEntity implements Serializable{
  5. protected int page=1;
  6. protected int size=20;
  7. protected String sidx="id";
  8. }

我用的spring-date-jpa
直接看action层

  1. //分页
  2. @RequestMapping("/cutpage")
  3. public List<Orders> cutpage(@RequestParam("page") int page){
  4. PageEntity or =new PageEntity();
  5. or.setSize(2);
  6. or.setPage(page);
  7. //不带排序
  8. PageRequest pq=new PageRequest(or.getPage()-1,or.getSize());
  9. Specification spec = (Specification<Orders>) (root, criteriaQuery, criteriaBuilder) -> {
  10. List<Predicate> predicates = new ArrayList<>();
  11. //添加条件userid=123,number like 1
  12. predicates.add(criteriaBuilder.equal(root.get("userid"), 123));
  13. predicates.add(criteriaBuilder.like(root.get("number"), "%" + "1" + "%"));
  14. return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()]));
  15. };
  16. //带条件分页
  17. Page PagefindAll = orderSrtvice.findAll(spec,pq);
  18. //不带条件
  19. Page<Orders> findAll = orderSrtvice.findAll(pq);
  20. //根据 id进行排序
  21. /* Sort.Direction sort_direction = Sort.Direction.ASC.toString().equalsIgnoreCase(or.getSidx()) ? Sort.Direction.ASC : Sort.Direction.DESC;
  22. PageRequest pqSort=new PageRequest(or.getPage()-1,or.getSize(),sort_direction);
  23. Page<Orders> findSort = orderSrtvice.findAll(pqSort);
  24. */
  25. return findAll.getContent();
  26. }

搞定收工,PageRequest 是boot已经封装好的 分页工具,然后就是 用该po的service去执行date-jpa的findAll 方法,至于我传的参数page实际就是 第几页的参数

发表评论

表情:
评论列表 (有 0 条评论,370人围观)

还没有评论,来说两句吧...

相关阅读

    相关 thinkphp5条件

    一、问题 ThinkPHP5 由于分页引擎和之前的版本完全是重构了,今天在用分页的时候突然发现,之前很简便的带条件分页竟然不好用了。 之前只要是get传递的参数,在分页

    相关 JSP通用组件,查询条件

    —— 如果一段代码重复出现的次数多了,我们就需要把它独立出来! 分页功能的代码就是这样的,在需要展示列表的页面,我们基本都需要加上分页功能,如果某天boss想要修改分页功能的