java 分页查询

引入依赖,提高效率,简化代码

    <!--mybatis分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.2</version>
        </dependency>

控制层,接受数据

    @GetMapping("/page")
    public Result<PageResult> page(DishPageQueryDTO dishPageQueryDTO){
        log.warn("{}", dishPageQueryDTO);
        return dishService.page(dishPageQueryDTO);
    }

业务层,效验参数,处理业务

    @Override  //分页查询
    public Result<PageResult> page(DishPageQueryDTO dishPageQueryDTO) {
        //效验参数
        String name = dishPageQueryDTO.getName();
        Integer status = dishPageQueryDTO.getStatus();
        Integer categoryId = dishPageQueryDTO.getCategoryId();
        int page = dishPageQueryDTO.getPage();
        int pageSize = dishPageQueryDTO.getPageSize();
        if (page <= 0 || pageSize <= 0) {
            throw new ArgsErrorException(MessageConstant.ARGS_ERROR);
        }
        //处理业务
        PageHelper.startPage(page, pageSize);
        Page<DishVO> vos = dishMapper.page(name, status, categoryId);
        PageResult pageResult = new PageResult(vos.getTotal(), vos.getResult());
        //封装数据
        return Result.success(pageResult);
    }

持久层,与数据库交互

Page<DishVO> page(String name, Integer status, Integer categoryId);

 在xml文件中写查询语句,利用动态sql进行查询,最后进行排序

    <select id="page" resultType="com.sky.vo.DishVO">
        select d.*,c.name categoryName
        from
        dish d, category c where d.category_id=c.id
        <if test="name != null and name != ''">
            and d.name like concat('%',#{name},'%')
        </if>
        <if test="status != null and status != ''">
            and d.status =#{status}
        </if>
        <if test="categoryId != null and categoryId != ''">
            and d.category_id =#{categoryId}
        </if>
        order by d.update_time desc
    </select>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值