Tk-mybatis+pageHelper+elmentUi实现分页

首先注意导包,导完包后我们新建一个品牌类

@Table(name = "tb_brand")
@Data
    public class Brand implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
            /**
            * 品牌名称
            */
    private String name;

            /**
            * 品牌图片地址
            */
    private String image;

            /**
            * 品牌的首字母
            */
    private String letter;
}

再新建一个分页类

public class PageResult<T> {
    private Long total;// 总条数
    private Long totalPage;// 总页数
    private List<T> items;// 当前页数据

    public PageResult() {
    }

    public PageResult(Long total, List<T> items) {
        this.total = total;
        this.items = items;
    }

    public PageResult(Long total, Long totalPage, List<T> items) {
        this.total = total;
        this.totalPage = totalPage;
        this.items = items;
    }

    public Long getTotal() {
        return total;
    }

    public void setTotal(Long total) {
        this.total = total;
    }

    public List<T> getItems() {
        return items;
    }

    public void setItems(List<T> items) {
        this.items = items;
    }

    public Long getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(Long totalPage) {
        this.totalPage = totalPage;
    }
}

mapper层继承tkmybatis的接口
Service层

    @Autowired
    private BrandMapper brandMapper;
    
      public PageResult<Brand> pageQuery(Integer page, Integer rows, String sortBy, Boolean desc, String key) {
        //开启分页查询
        PageHelper.startPage(page, rows);
        //过滤
        Example example = new Example(Brand.class);
        Example.Criteria criteria = example.createCriteria();

        if (StringUtils.isNotBlank(key)) {
            criteria.andLike("name", "%" + key + "%");
        }
        //判断字段不为空
        if (StringUtils.isNotBlank(sortBy)) {
            //desc为true 倒序
            example.setOrderByClause(sortBy+(desc ? " Desc" : " ASC")); //注意前面的空格
        }
        //直接查询并转换为分页条件查询结果
        Page<Brand> brands = (Page<Brand>) brandMapper.selectByExample(example);
        //封装分页的结果对象
        return new PageResult<>(brands.getTotal(), new Long(brands.getPages()), brands);
    }

controller层

   @Autowired
    private BrandServiceImpl brandService;

    @GetMapping("page")
    public ResponseEntity<PageResult<Brand>> pageQuery(
            @RequestParam(value = "page",defaultValue = "1")Integer page,
            @RequestParam(value = "rows",defaultValue = "10")Integer rows,
            @RequestParam(value = "sortBy",required = false)String sortBy,
            @RequestParam(value = "desc",required = false)Boolean desc,
            @RequestParam(value = "key",required = false)String key) {

        PageResult<Brand> brandPageResult = brandService.pageQuery(page, rows, sortBy, desc, key);
        //判断分页数据不为空
        if (brandPageResult != null && null != brandPageResult.getItems() && 0!=brandPageResult.getItems().size()) {
            return ResponseEntity.ok(brandPageResult);
        }
        return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值