學成線上3-課程管理
阿新 • • 發佈:2020-10-28
-
資料庫:
因為課程資訊包括了基本資訊、課程計劃、教師資訊等內容,為了方便以後業務擴充套件我們表結構設計如下:
-
程式碼:
1.查詢:
點選我的課程,分頁展示出已新增課程列表,目前展示資訊僅包括基本資訊和圖片資訊,可能後面還會有學習人數等資訊。選用技術Mybatias+PageHelper分頁//在呼叫dao的service方法中設定分頁引數:PageHelper.startPage(page, size),分頁引數會設定在ThreadLocal中PageHelper在mybatis執行sql前進行攔截,從ThreadLocal取出分頁引數,修改當前執行的sql語句,新增分頁 sql。最後執行添加了分頁sql的sql語句,實現分頁查詢
///////////pom檔案: <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper‐spring‐boot‐starter</artifactId> <version>1.2.4</version> </dependency> ///////////配置檔案: pagehelper: helper‐dialect: mysql ///////////DAO層: @Mapper public interface CourseMapper { Page<CourseInfo> findCourseListPage(CourseListRequest courseListRequest); } ///////////DAO層對應對映檔案: <select id="findCourseListPage" resultType="com.xuecheng.framework.domain.course.ext.CourseInfo" parameterType="com.xuecheng.framework.domain.course.request.CourseListRequest"> SELECT course_base.*, (SELECT pic FROM course_pic WHERE courseid= course_base.id) pic FROM course_base </select> /////////////測試分頁: @Test
public void testPageHelper(){
PageHelper.startPage(1, 10);//查詢第一頁,每頁顯示10條記錄
CourseListRequest courseListRequest = new CourseListRequest();
Page<CourseInfo> courseListPage = courseMapper.findCourseListPage(courseListRequest);
List<CourseInfo> result = courseListPage.getResult();
System.out.println(courseListPage); }
2.新增課程:
點選+號進入新增課程頁面
3.課程分類查詢:
分類資訊查詢應用到首頁導航選單、新增課程時選擇分類等,它的資料結構如下圖:
//定義前後端互動VO繼承分類資訊類 @Data @ToString public class CategoryNode extends Category { List<CategoryNode> children; } //對映檔案:參考課程計劃:根據課程id查詢出該課程的學習計劃目錄 去掉條件即可 <resultMap type="com.xuecheng.framework.domain.course.ext.TeachplanNode" id="teachplanMap" >
<id property="id" column="one_id"/>
<result property="pname" column="one_name"/>
<collection property="children"ofType="com.xuecheng.framework.domain.course.ext.TeachplanNode">
<id property="id" column="two_id"/>
<result property="pname" column="two_name"/>
<collection property="children" ofType="com.xuecheng.framework.domain.course.ext.TeachplanNode">
<id property="id" column="three_id"/>
<result property="pname" column="three_name"/>
</collection>
</collection>
</resultMap>
<select id="selectList" resultMap="teachplanMap" parameterType="java.lang.String" >
SELECT a.id one_id, a.pname one_name,
b.id two_id, b.pname two_name,
c.id three_id, c.pname three_name
FROM teachplan
a LEFT JOIN teachplan b ON a.id = b.parentid
LEFT JOIN teachplan c ON b.id = c.parentid
WHERE a.parentid = '0'
<if test="_parameter!=null and _parameter!=''">
and a.courseid=#{courseId}
</if>
ORDER BY a.orderby, b.orderby, c.orderby
</select>