00:00
咱们下午主要这么几个功能,首先第一个咱就来实现,就是我们这个流程上的第一步,添加课程的基本信息,把这个过程我们做个实践,那怎么做,一会儿我先做个详细,就是细致的分析,咱再写代码,但是这个功能虽然说只一个添加课程基本信息,里边涉及到很多的细节问题,一会儿我会背出来,所以咱下午主要把这功能我们要做到就是添加课程的基本信息。这各位知道啊,那咱们下面就来具体看一下这功能,把这功能我们来做个实现。首先啊,我们怎么做在里边我来说一下啊。来实现这个功能。课程。管理里边的第一步添加课程的。基本信息这个能做到,那这要做的话,按照咱们之前的过程,咱们肯定是先写接口,然后再写前端,那我们还是先来开发里边的接口部分。
01:06
那怎么做呢?看到我们的代码中,因为咱们之前这个模块叫service edu,所以咱们把课程相关的都放到edu中,放到这个模块中,在这模块中呢,之前有这么一个分类,还有讲师,现在咱课程也给他放到这里面,包括章节小节在里边我们都来写,都写到edu中,那里边的第一步操作咱们还是按照咱之前的方式,用代码生成器,这代码我们现在生出来就是里边的。课程描述章节小节的情况代码我们先都生成出来,这是咱要做的第一部分。那我写到这个位置第一步。使用代码生成器,我们来生成课程相关的这个代码。这个是咱们做的第一步,那咱下面我们就用一下代码生成器,把这个最终生成出来。
02:04
怎么用,咱之前都用过了,我就直接改一下就可以了,那我们找到啊,在这个service edu,这个test里边,之前咱们有这么一个代码生器之前写到的,然后在里边呢,我们需要改什么呢?上面这个不需要改,路径就是这个路径,然后这里边的策略,这个数据库,这个包都不需要变,咱需要变的。是不是这个地方就是你的表兴奋部分,咱要根据表把这个代码生成出来,那咱就改一下表,然后表这里边有多张表,咱给他生出来啊,那一个复制我就不敲了,省得写错。首先第一个表叫edu cos,就是咱说那个课程表。那我写过来,这是第一个表。然后里边还有多张表,我都给它生出来,后面咱就方便了,然后第二个表应该有这个表叫edu course description,就是里边那个描述的这张表。
03:03
这个在生成,然后除了它之外,我们有第三个表,就是它的章节,还有第四个它里边的小节,这两个我也复制章节,这表叫开头就是edu。Capital这个表。把它复制过来,然后还有一个小节表是里边这个叫edu video,这张表给W做一个复制。这几张表我们都复制过来,然后都复制之后,下面咱把代码生成器执行,就把这些表对应的代码,我们就一次性都给它生出来,所以当然后面方便,因为现在不生成,后面咱也都需要生出来,现在我一次性都生出来,这是第一个。通过代码生气,创建监控代码。我们等他执行完成。啊,各位看啊,现在应该是可以了啊,代码都生出来了,包里边最终提出我们成功,然后都升之后咱们看一下里面这个代码咱们打开。
04:08
首先我们先看实体类,在实体类中呢,现在多了几个,大家看啊,有edu courses课程。Description描述character章节,Video小节是不是都有了?另外咱看three里面,它这几个接口事件类都存在,在map中有接口实现类都有啊,接口和配置文件都存在。然后除了这个之外,咱再看control中这个都有啊,包括有课程描述,章节小节都有,当然在control中有一点各位注意啊,它这里边呢,描述的ctrler应该是不需要,或者说简介CTRL不需要,因为咱的简介要依赖于课程做到,咱不可以说单独去加简介,单独去加什么简介,这个修改咱都是在课程中操作,所以说里边的简介的description这controller就可以没有了,因为它不需要,我把它就删掉了,咱把这简介都放到课程中做操作。
05:08
啊,这是我们生成代码是里边的第一步。然后生成之后咱们往下来做,在里边咱们肯定是control中注入service,然后service中调map,最终把这实现,那里边我先改几个地方啊,这个名字我就习惯叫Co Co。再加上这么一个注解,这个cross注解解决咱之前说那个跨域,这个第一步我们就完成了啊,就是生成代码,然后生成之后,下面我们来写一下里边的具体内容,那我们先分析一下这该怎么去做。咱们来到这里边啊,给大家分析,那我们来看一下里面这个内容中,我就写到这位置啊,说一下它里面中意几个细节问题,然后咱们最后再写代码,就代码并不复杂,主要是你要能想清楚里边一些问题。
06:01
那里边有什么问题,咱一个来看啊,就是首先呢,比如说一会儿呢,我们肯定是在页面中写个表单,表单中呢可以输入有讲,就是这个课程的相关数据,包括名称、价格,课时数,简介等等,然后都输之后,这些值咱点保存,并下一步是不是要挑到咱的接口中来啊,然后我在接口中把数据是不是要加到数据库中,就来做这个功能。但是这里边问题有这么几点,第一个问题就是这些数据怎么调到咱的接口中来呢?怎么提交?大家注意啊,咱们之前写那种添加方式,给咱找一个之前的添加,包括咱找这讲师,大家看到之前的方式中啊,咱是用这个筷子包底传个对象是不是传过来的,所以现在还这么做,是不是也可以啊,但是有一个问题是什么呢?大家看这个数据里边还有一个特点啊。
07:02
咱仔细看啊,在数据中呢,有这个课程相关的,包括还有一个数据叫什么。简介也就是说啊,你现在如果说用蕊块的body底,那我们传一个叫edu cos这个对象,这对象中的大部分值都有,但是有一个值里边没有,就是里边那个简介大家发现是没有啊,所以说我们现在啊,在里边我们要做这个数据的提交,咱可以单独建个类,就咱之前说过的这个叫。VO用它来封装我们那个数据做操做到这个操作啊,所以这是一会儿咱要做的第一个。我想这位置啊,就我们做的第一个细节就是。咱要创建一个VO的一个实体类,用于我们那个表单数据的这么一个封装啊,这个是咱一块写的,第一个写个VO类做封装,这各位啊,应该能想清楚啊,就放这些值。
08:00
然后这个写完之后,我们再来看第二个内容。第二个是什么呢?就是最终在接口中把这个就是表单提交过来的数据。咱肯定要添加到数据库中去。那加的时候呢,有这么一个特点啊,大家注意看啊,就是我这里边啊,这些数据要加的数据库,但是咱的课程相关有一个关系,就是这个关系。大家仔细看啊,咱上午分析过了,刚才也提到过,你看这个关系课程跟描述。什么关系?是不是一对一啊,也就是说我们一会儿加数据,你向课程表中加数据,同时对应向描述表中是不加数据,因为他们有一对一关系,描述信息咱们不能加课程中,因为它里边没有描述的字段,而描述信息你要加到描述表中。也就是说通俗来说,咱们要做这个添加课程基本信息,咱要去向两张表中加数据。
09:03
我写到这个位置,两张表中添加数据,一张表是课程的那个基本信息表,还有一张表是课程的。描述表,另外两张表是一个一对一的关系,这是我们的第二个细节,这咱一块实现出来,要向两张表增加数据,这各位知道,然后写完之后咱还有第三个细节。我想这位置啊,第三个是什么呢?大家看我这张图上有这么两个地方。我们看这位置。各位仔细看啊,就是我加这个课程的时候,里边肯定要指定你课程是哪个讲师所讲的,包括课程是属于哪一个分类的。然后这两个地方咱要怎么填出来呢。大家可以考虑一下啊,第一个你注意,比如说我们现在加个讲师,讲师的话,咱不可能自己去输入一个讲师,假如输入一个张老师,李老师肯定不对,而讲师咱之前表中有数据,那咱们在页面中咱怎么做?
10:06
我们是不是让他可以选择讲师,而一种比较典型的方师,咱用个下拉列表是不能做到,就是下拉列表让他去选择讲师,包括分类一样,让他去选择分类,但是分类中有一点稍微麻烦点,咱的分类是不是有两级分类,就是一级和二级分类,所以咱要做成一个什么?这应该是我们在Java阶段学到的,这叫二级联动,就你一级分类和二级分类。什么叫二级联动呢?举个例子啊。各位应该都建一种效果,叫省市联动,比如我第一个甲列表中选择一个省,假如我选择河北省,然后后面会列出河北省里边所有的市,假如说选择湖南省,那列出湖南省中的市,我选择湖北省,列出湖北省里边的,比如什么武汉,什么荆州,什么襄阳等等啊,这个是我们做的联动,而现在咱的分类肯定要做成一种联动效果,因为它是两级分类。
11:08
所以这是我们的第三个细节。我这里列出来啊,后面咱都会要都要去写这个功能,第三个就是咱把这个讲师和分类使用一个下拉列表进行显示。需要这么来做,而在做的过程中,咱们这个课程分类需要做成一种叫做二级联动的这么一个效果,因为它有一级和二级,然后做成二级联动,在这是里边的这么几个细节问题,希望各位给他知道啊。咱们把它做了一个说明。这是我们提到的啊,我再重复一遍,然后再写代码,第一个就是咱们提交数据,我可以建个view类做数据封装,因为它里边有课程信息,有描述信息。咱用you的是一类,封装不当,数据不全,咱要单独写V类做封装。第二个就是把提过来的数据咱要添加,并不是一张表,因为里边有课程信息,还有简介信息,所以咱要加到两张表中,一个课程表,一个简介表,或者叫描述表,这是第二个。第三个就是在里边有讲师和分类,而这两个地方咱并不是自己来输入,咱需要用个下列表来选择,因为两个在表中都有具体的数据,那这个分类它是两级分类,咱要做成一种叫二级联动的效果。
12:34
这是我们说的几个细节问题,各位给他知道,所以咱们把它做了一个具体分析,主要就是这些,然后都分析之后,最后咱就开始写下这个具体的代码部分。
我来说两句