用pagehelper和通用mapper正确处理分页查询的用法

1.controller层

/**
 * 分页查询品牌
 * @param page
 * @param rows
 * @param sortBy
 * @param desc
 * @param key
 * @return
 */
@ApiOperation("分页查询品牌")
@ApiImplicitParams({
        @ApiImplicitParam(name = "page",value = "当前页数",paramType = "Integer"),
        @ApiImplicitParam(name = "rows",value = "每页显示条数",paramType = "Integer"),
        @ApiImplicitParam(name = "sortBy",value = "按什么排序"),
        @ApiImplicitParam(name = "desc",value = "是否降序显示",paramType = "Boolean"),
        @ApiImplicitParam(name = "key",value = "搜索关键字")
})
@GetMapping("page")
public ResponseEntity<PageResult<Brand>> queryBrandByPage(
        @RequestParam(value = "page",defaultValue = "1")Integer page,
        @RequestParam(value = "rows",defaultValue = "5")Integer rows,
        @RequestParam(value = "sortBy",required = false)String sortBy,
        @RequestParam(value = "desc",defaultValue ="false")Boolean desc,
        @RequestParam(value = "key",required = false)String key
){
        return ResponseEntity.ok(brandService.queryBrandByPage(page,rows,sortBy,desc,key));
}

2、server层

public PageResult<Brand> queryBrandByPage
 (Integer page, Integer rows, String sortBy, Boolean desc, String key) {
    //分页
    PageHelper.startPage(page,rows);

    //过滤
    Example example = new Example(Brand.class);
    if(StringUtils.isNotBlank(key)){
        //过滤条件
        example.createCriteria().orLike("name","%"+key+"%")
                .orEqualTo("letter",key.toUpperCase());
    }
    //排序
    if(StringUtils.isNotBlank(sortBy)){
       String orderByClause=sortBy+(desc?"DESC":"ASC");
        example.setOrderByClause(orderByClause);
    }

    //查询
    List<Brand> list = brandMapper.selectByExample(example);
    if(CollectionUtils.isEmpty(list)){
        throw new LyException(ExceptionEnums.BEAND_CANNOT_BE_FOND);
    }
    PageInfo<Brand> info = new PageInfo<>(list);
    return new PageResult<>(info.getTotal(),list);
}

3.DAO层

package com.leyou.item.mapper;

import com.leyou.item.pojo.Brand;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

public interface BrandMapper extends Mapper<Brand> {
    
    @Insert("insert into tb_category_brand VALUES (#{cid},#{bid})")
    int insertCategoryBrand(@Param("cid")long cid,@Param("bid")long bid);

    @Select("select b.id,b.`name` FROM tb_brand b INNER JOIN tb_category_brand cb ON b.id=cb.brand_id where cb.brand_id=#{cid}")
    List<Brand> queryBrandByCid(@Param("cid") Long cid);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值