学成在线day07,课程管理实战,PageHelper 分页插件原理,数据字典,课程基本信息和营销信息的修改

需求1:需要分页显示,我的课程,并且显示图片,(暂时不用显示图片)
在这里插入图片描述
要求做出来的效果:
在这里插入图片描述
上边的查询要实现分页、会存在多表关联查询,所以建议使用mybatis实现我的课程查询。
1.2 API 接口
输入参数:
页码、每页显示个数、查询条件
输出结果类型:
QueryResponseResult,这里面包括,操作状态的代码,和分页数据响应

@GetMapping("/coursebase/list/{
   page}/{
   size}")
    //查询课程列表,参数为:当前页码,每页显示条数,和一个备用的扩展参数
    QueryResponseResult findCourseList(int page, int size, CourseListRequest courseListRequest);

1.3课程管理服务
PageHelper 分页插件原理
在这里插入图片描述
参考使用的代码:注意,分页插件的起始页码是1,不是0

//用PageHelper查询课程列表的分页数据,参数为:当前页码,每页显示条数,扩展参数
    public QueryResult<CourseInfo> findCourseList(int page, int size,CourseListRequest courseListRequest) {
   
        if (courseListRequest==null){
   
            //如果扩展参数为空,就new一个,免得后面取值出现报错
            courseListRequest = new CourseListRequest();
        }
        if (page < 0){
   
            //进来的页面,要是小于0,就是非法参数,默认查第一页
            //PageHelper,的分页起始为1,不是0
            page = 1;
        }
        if (size < 0){
   
            //进来的显示条数,要是小于0,就是非法参数,默认查5条
            size = 5;
        }
        //启动分页插件,并且设置页码和显示条数
        PageHelper.startPage(page,size);
        //执行写好的sql方法
        Page<CourseInfo> courseListPage = courseMapper.findCourseList(courseListRequest);
        //QueryResult<CourseInfo>组装这个返回的分页对象
            //得到分页的数据集合
        List<CourseInfo> courseInfoList = courseListPage.getResult();
            //数据总条数
        long total = courseListPage.getTotal();
        QueryResult<CourseInfo> queryResult = new QueryResult<>();
        queryResult.setTotal(total);
        queryResult.setList(courseInfoList);

        return queryResult;

    }

开始搭建课程服务:

添加分页jar包

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

配置具体数据库的方言:
在这里插入图片描述

pagehelper: #指定分页插件使用的是什么数据库,好更换方言类型
      helper‐dialect: mysql

写分页查询的Dao
在这里插入图片描述

//返回一个封装好的,page<CourseInfo>,CourseInfo是自定义的实体类,包含课程id,名称,图片
   Page<CourseInfo> findCourseList(CourseListRequest courseListRequest);

写映射的mapper.xml:
在这里插入图片描述

<select id="findCourseList" parameterType="com.xuecheng.framework.domain.course.request.CourseListRequest"
            resultType="com.xuecheng.framework.domain.course.ext.CourseInfo">
        select a.id,a.name,b.pic from course_base as a left join course_pic as b on a.id = b.courseid
    </select>

1.3.3 Service
定义CourseService.java类,用于课程管理的service定义:

//用PageHelper查询课程列表的分页数据,参数为:当前页码,每页显示条数,扩展参数
    public QueryResult<CourseInfo> findCourseList(int page, int size,CourseListRequest courseListRequest) {
   
        if (courseListRequest==null){
   
            //如果扩展参数为空,就new一个,免得后面取值出现报错
            courseListRequest = new CourseListRequest();
        }
        if (page < 0){
   
            //进来的页面,要是小于0,就是非法参数,默认查第一页
            //PageHelper,的分页起始为1,不是0
            page = 1;
        }
        if (size < 0){
   
            //进来的显示条数,要是小于0,就是非法参数,默认查5条
            size = 5;
        }
        //启动分页插件,并且设置页码和显示条数
        PageHelper.startPage(page,size);
        //执行写好的sql方法
        Page<CourseInfo> courseListPage = courseMapper.findCourseList(courseListRequest);
        //QueryResult<CourseInfo>组装这个返回的分页对象
        //得到分页的数据集合
        List<CourseInfo> courseInfoList = courseListPage.getResult();
        //数据总条数
        long total = courseListPage.getTotal();
        QueryResult<CourseInfo> queryResult = new QueryResult<>();
        queryResult.setTotal(total);
        queryResult.setList(courseInfoList);

        return queryResult;

    }

1.3.4 Controller

 @GetMapping("/coursebase/list/{
   page}/{
   size}")
    //查询课程列表,参数为:当前页码,每页显示条数,和一个备用的扩展参数
    public QueryResponseResult findCourseList(@PathVariable("page") int page,@PathVariable("size"
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值