课程管理:
查询要实现分页、会存在多表关联查询,所以建议使用mybatis实现我的课程查询。
单表查询直接用Spring Data JPA,多表关联查询使用Mybatis有利于后期优化处理。
API接口:
输入参数: 页码、每页显示个数、查询条件
输出结果类型: QueryResponseResult<自定义类型>
PageHelper是mybatis的通用分页插件,通过mybatis的拦截器实现分页功能,拦截sql查询请求,添加分页语句,最终实现分页查询功能。
本项目使用Pagehelper实现Mybatis分页功能开发,由于本项目使用Springboot开发,在Springboot上集成pagehelper。
分页原理:
在调用dao的service方法中设置分页参数:PageHelper.startPage(page, size),分页参数会设置在ThreadLocal中,PageHelper在mybatis执行sql前进行拦截,从ThreadLocal取出分页参数,修改当前执行的sql语句,
添加分页sql。 最后执行添加了分页sql的sql语句,实现分页查询。
具体配置:
1、在pom中添加相关依赖:
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper‐spring‐boot‐starter</artifactId> <version>1.2.4</version> </dependency>
2、在application.yml中配置pageHelper操作的数据库类型:
pagehelper: helper‐dialect: mysql
3、定义接口
在测试类中编写测试方法:
@Test public void testPageHelper() { //查询第1页,每页显示10条记录 PageHelper.startPage(1, 10); Page<CourseBase> courseList = courseMapper.findCourseList(); List<CourseBase> result = courseList.getResult(); long total = courseList.getTotal(); System.out.println(result); }
在查询SQL前先设置分页:PageHelper.startPage(1, 10);,然后查询出list集合,调用getResult()方法即可查询到分页数据。
4、查看debug日志:
在logback-spring.xml配置文件中将info改为debug。
5、在前端course_list.vue中配置element的分页card组件
新增课程用户流程:
1、用户进入“我的课程”页面,点击“新增课程”,进入新增课程页面
2、填写课程信息,选择课程分类、课程等级、学习模式等。
3、信息填写完毕,点击“提交”,课程添加成功或课程添加失败并提示失败原因。
课程分类查询:
在新增课程界面需要选择课程所属分类, 分类信息是整个项目非常重要的信息,课程即商品,分类信息设置的好 坏直接影响用户访问量。
前端展示课程分类使用elemenet-ui的cascader(级联选择器)组件。
编写后台CategoryController中的list方法。
数据字典:
在新增课程界面需要选择课程等级、课程状态等,这些信息统一采用数据字典管理的方式。
编写后台SysDictionaryController中的getByType方法。
获取选择的分类:
在controller中添加addCourseBase方法。