00:00
就是下面咱来做这个热门课程和名师的一个显示,咱首先也是先写这个接口,就是把这个里边的热门课程和名师给他查出来就可以了,那这里边咱先大概说一下这个实现的一个过程,或者说一个实现的需求。大家看啊,这个叫热门课程,那什么叫热门课程呢?这个各位要明确啊,什么叫热门课程,就是这个热门课程呢,在实际中啊,咱们有更严格的区分,得根据你实际项目的需求,就是一般来讲有这么几种热门,怎么热门,第一个就是你可以根据你课程中,比如咱找到我们的课程啊,就说这个不同的需求,但是实际怎么做,看你实际的需求,第一种方式你可以根据这个字段判断。大家看啊这个字段。是什么?Wave count是什么?就是你课程的浏览数量,根据浏览数量你做个排序,比如说我现在这是387个浏览量,它是不是应该是所有人看的最多的,它就是最热门的,然后里边是零,肯定是最不热门的,所以根据他咱给他做个排序,这就是热门课程查询,而大家看啊,我现在页面中显示的有几个热门课程,来数一下。
01:15
是不是有八个热门课程,所以咱就产出八个最热门课程,也就是说根据这个叫we count做个排序,咱把排到前八个的数据给它显示还可以了,这是第一种方式,根据你这个就是浏览数量进行这么一个排序,然后得到热门课程啊,这是一种方案,另外还有一种方案怎么做呢?就是这里边啊,然后根据他做排序,就是ID。因为有的时候呢,就是我们最就是这个ID嘛,它里边咱们根据他排序,就是你最新加的给他也算上这门课程,这也是一种方式,根据ID排序,或者说你可以根据这个时间做个排序,就这个create time做个排序,谁最新加的让他做一个热门课程啊,这根据时际不同的场景,但是很多时候咱们很多人更习惯用这个叫。
02:02
为抗的做个排序,或者说根据ID排序,这种场景都有啊,这看实际,所以咱就写一种方式,因为它技术层面都一样,只是你记住这种需求,不同公司中需求可能不一样,有的公司根据ID排序得到热门课程,有的公司里面根据这个播放量,或者根据这个查看数量进行排序,但是做法肯定都是排序,查出你的这个八条记录啊,把这做到,那这个代码要怎么写?咱先写一段circle语句。比如我现在啊,我就这么来写。这个咱写个需求,比如现在我想根据这个ID。进行一个就是叫做降序的一个排列啊,注意我的需求啊,降序的排列,并且咱们只显示它排列之后的这个前八条记录。八条记录,这是我要写一个语句,那大家看这个需求啊,这语句要各位要会写啊,就是比如说现在我们在笔试。
03:02
在笔试的题目上,就这道题目,那大家可以考虑怎么写啊,我再说一遍,我这个做法就是根据ID先做个降序排列,然后排列之后的显示你排列之后的前八条记录,因为咱们这个数据肯定不是八条,它有几十条,我只想显示排列之后的前八条记录,这是我要做这么一个需求啊,那咱们把这语句我们写一下,大看怎么做啊,首先看第一部分,咱先查数据,就来一个。我就写个星号啊,From这叫edu这个cos,然后咱做个排序,排序怎么写。各位应该都知道啊,是不是这个。Older by,咱根据ID排序,但我要做个什么排列降序,如果你这么写的话,它是不是就是升序,就是这么写,是升序越来越大啊,升序默认叫asc,但是可以省略,如果你是降序的话,加什么是不是叫这个。是不DC这是做的一个降序排列,所以咱现在这么来做,把它这个降序,但是你注意啊,目前你做降序排列的话,他是把所有数据都做了降序,我现在这样查什么,这样查你降序排列之后的前八条记录,先把前八条查出来,而不是查所有啊,这是我们要做的效果。
04:21
那怎么查出前八条记录呢?不知各位是否知道啊,这里边啊有一个关键字是在咱们买所有阶段用到的。各位应该都见过啊这关键词。叫limit米,Limit米呢,咱之前用它是做过分页呀,但是现在我可以直接写个八,它就可以把我里边的八条记录查出来,你看现在12345678是八条记录啊,他现在就这么做到的啊,用这个做查询。所以咱们啊,把这语句知道啊,我再说一遍啊,先根据ID做个降序排列,然后再根据这个厘米八查出你排列之后的前八条记录,这是一个语句的写法。
05:04
这个啊,咱做一个说明,各位把这个知道啊,因为咱们一会儿查那个课程的时候,就要查出他的前八个热门课程。啊,这是第一个啊,然后大家看第二个叫讲师,讲师呢,这里边显示就是四个讲师,那我们查这个名师,就这个名师呢,没有什么特别的界定,一般来讲啊,就是你在这个在线教育网站中,这个讲师应该都叫名师啊,一般都叫随便一个人都叫什么高级讲师,特级讲师,教授嘛,随便一个人都叫名师,那咱就查名师,那这名师呢,咱给他也来个规则。比如这个名师啊,我也是做过排序嘛啊,咱也根据ID排序了啊,然后排序之后呢,他得到里边的就是前四条记录,所以语句跟这一样的啊,那我就写一下啊。就是。查询这个讲师。然后根据他的ID做个排序,并且显示它的前四条记录。
06:01
把这个咱做到啊,那我来查一下啊,Select星号from edu。Teacher,然后这里边加个order by ID,比如就做个升序了啊,再来一个LIMIT4,这样的话根据ID排序,然后显示它的前四条记录,就这个四条记录啊,这样的话咱们把两个语句做了一个编写,各位把这写法要给他会写啊,因为实际中这种场景很多,而比较典型的用场景就是咱们这里边。比如你显示前八个热门课程,显示前四个名师,那用它做到,包括咱的幻灯片也会这么做,因为我现在这么写的话,就是我刚才幻灯片呢,但是查所有当然幻灯片中,可能你这里边啊有100个幻灯片,大家肯定都不显示,那我可以怎么做呢?比如我可以只显示根据时间它的前三个,或者根据ID的前四个。做法跟这语句都一样啊,所以咱们语句我要会写啊,就是查询出前几条记录,它就是用一个厘米的关键字做到。
07:06
啊,这个啊,我们做一个说明。然后这个说完之后,下面咱来写一下这个接口,那这接口怎么做啊,比如说啊,咱先这么做啊,就是为了效果更加明显,咱把这个接口先给他改一下。啊,就是我们的。这个啊,给他先改一下。那怎么改呢?给大家说一下,比如我现在就是我刚才写这个查所有班的接口,但是不是查表中的所有记录,但是比如现在我不这么做,我想怎么做呢?我想查询就是你这个,呃,比如说这么写啊,我先根据ID进行一个叫降序的一个排列。然后咱们只是显示你排列之后的前两条记录。把这个互相做到啊,咱跟ID排序,排序之后显示前两条记录,如果写语句的话,那就是一个排序厘米等于二是不是前的记录,但是这个过程我想在这个。
08:05
就是代码中给它做到啊,先把这个来做一下,那咱看这该怎么写啊,希望各位要会写这个代码啊,咱会经常写到类似代码,首先第一个。咱是不是要排序,那排序的话,在里边我们还是加上这个条件,叫这个query。Rapper啊,把这个加上啊,Query rapper这个条件。然后在query rapper里边呢,加上我们那个叫CM。这个啊,我就叫。Rapper,然后等于new上一个叫query rapper啊把这对象咱做一个创建。这个啊,我们的第一步创建这么一个对象,为了咱们做那个条件,然后创建之后呢,下面咱要根据这个ID做一个排序。或者说是降序排列,那我们加一个叫rapper,点上这一个方法,按照这方法啊,大家看啊方法降序。
09:03
是不是就是第一个order by DEC吗?做降序里边加上你排列那个字段,咱是根据ID做排序啊,就是这个banner中的ID,根据它排列降序,然后排列之后呢,这个位置啊,咱们还要做件事情,要显示它的前两条记录,把这个做到。那这个怎么做呢?不是各位是否会写啊,前两条咱可能加个limit米,但是这里边呢,肯定没有limit米的这些方法啊,所以咱们用里边的方法,这里边它没有直接做厘米操作,那要怎么做呢。不知道各位是否记得啊,咱应该是买杯水阶段,买瑞普阶段讲过的,在这里边啊,有一个方法,这个方法。叫纳方法,这个方法干什么,可以拼接你那个。色后语句,所以在用last,在后面可以加个last方法,里面拼上一个厘米的值是二,这个可以做到啊,用个last方法。
10:01
然后这些方法很多同学应该都忘记了啊,那咱们这样看一下,之前我们那个买玉爬那个笔记中啊,那方法咱们再看一下啊,应该是我们在项目第一天学到的。当时我应该是演示过啊,咱找这个叫条件构造器,就这个query rapper,然后在里边有一个方法,咱往下找啊,一个方法叫纳的方法,这个方法。大家看啊,不知道是否记得啊,这个方法作用就是你在里边加个辣,方法里边就可以拼上你的语句,当然咱们演示就是厘米等于一啊,就是叉叉一条记录,而咱一会儿写的是厘米的值是二,现在就这么来做啊。用这个做到,那咱下面把这个我们就写下啊,来到代码中,咱加上这么一个叫做。Rapper。点上last啊,注意是last在里边呢,拼上语句,这语义就是厘米的值是二,因为咱们是查询它的前两条记录啊,所以这个我们做了一个修改啊,主要是这么做到的,因为这个需求把这个做个实现。
11:07
大家把这个要给它会写啊,主要是用到了第一个排序,第二个用last方法拼语句。查询我们的前两条记录。这个哈,我们就记完了啊。是不是一个代码。把这个给各位先。截过来啊。然后洗完之后咱再往下进一步实现啊。啊,把它啊放在这里,所以这个代码要各位啊给他要记住啊,主要用到一个叫last,所以现在把这就改出来了,然后改完之后咱们再去写这个讲师的四条记录和课程的八条记录,应该就简单了,跟咱刚才写这个应该是一模一样的,那我下面啊把这个全给他快速写下啊写这个就是前台的课程,还有前台的讲师,也就是前台首页面这个线上部分。
12:02
但是因为啊,他要查这个讲师和课程的,所以咱就不小三分中,因为里边没有那些相关实体类那些代码,我们为了方便就小edu中,但是一看小里边就是这里边你需要把那代码都拿过来啊,咱就在edu中写这代码。那我来写一下啊,就是在E丢里边,咱为了区分,我在他的CTRL中先来建个包,咱专门写前台的部分,这个包我叫front。然后在front里边呢,咱给它创建一个controller,因为它是首页面显示,我就叫这个,呃,就叫index。Front。这个controller。啊,就是首页面啊,这个显示就要这个名字了啊,Index front controller,然后在里边我们加上它相关的一些注解啊,就加上一个叫rest controller。再加上一个叫request mapping,在request mapping中加上,我们就用那个名字啊,名字为了方便,我就跟这个前缀都一样了,就叫edu。
13:06
Service。啊,叫这个名字,然后后面我们叫index front,在里边写上咱们的具体功能,而咱要做的功能就是。查询你的就是前八条这个热门课程。然后再查询你的前四条,这个名师就是把这个数据查出来,那咱就在一个方法中,把两个部分都查出来,就能给他返回在页面级显示就可以了,前八个热门课程,前四个名师啊,那咱们写一下啊。在这个位置我们来查一下啊,因为它不需要条件,只需要查就可以了,所以我们写一个get方法,带get提交方式中起个名字,名字我就叫。就叫index就叫它了啊,然后写完之后写方法哈,我叫index这么一个方法名字。
14:04
在里边我们给它先存一个值啊,不让它先报错。完成啊,然后完成之后在里边写功能,因为咱要查这个课程,还要查名师,所以现在为了能调到,我把课程名师的service给它先都注进来,为了咱能调用里面的方法。那我先注入那个课程,就是edu service。啊,Edu可能叫什么啊。就是这个service。它应该叫这个啊,就是edu service。把这个我们先注入进来啊,然后注入之后给它起个名字就叫Co service,这是我们的。第一个啊注入,然后注入之后咱来注入里面那个叫做讲师的,就是edu teacher这个也做注入啊,用它快速改一下啊。Edu。Teacher。然后这个名字我们叫teacher。
15:03
我们也做到了啊,就是两个service我们都给它注进来,然后注入之后咱就调里边的方法把这功能做到,那我们先做第一个先查询这个。前八个热门课程把这做到啊,刚才咱们写过了啊,我再快速写一遍,我们写一个叫这个rapper。Query rapper。然后里边加上那个叫edu。这个我们叫rap,等于new上这么一个叫快rap,把这个啊,我们先给它。创建出来。创建一个对象。把它的依赖能给他引进来。就是这个啊,然后这个创建之后,在里边我们写它那个具体的那个条件,咱加个rapper点上这个叫order by。DC,因为咱要根据ID做个排序,然后排序之后要查出它的前八条记录,那加个rapper.last刚才咱刚写过加一个叫limit,值是八,这样的话就拼接了条件,然后写完条件之后咱调这个cos中,这个查询的方法就是一个list里边传一个叫rapper。
16:22
最终得到的就是我们里边这个结果,也就是前八个热门课程,我叫edu list。这个啊,咱就得到了啊,这是第一部分,然后这做到之后,咱再查那个前四个名师跟他写法差不多,我用它就快速改一下了啊,跟他基本上一样。就是前四个这个。名师。然后做法中这个位置应该叫edu。Teacher啊,就跟他不一样啊,然后这个名字为了区分,我叫teacher。依赖引入啊,然后这个创建之后,下面也是设置它那个条件,比如咱也是根据ID啊做个排列,还是它了啊,然后里边查的是前四条记录和写告四,最后查询得到我们的结果啊,就是edo teacher。
17:14
我这个叫做。Teacher。这个完成了啊,所以现在把这值我们就查出来了啊,这个名字啊,然后都查出来之后,我们最后啊,就是把这个。最终这个结果啊,然后给他做个返回。等我给他改完啊。再检查一遍,这应该没错啊,最终给它返回可以了,那怎么返回呢?因为它就是两个值嘛,咱可以依次给它一放就可以了,那我就写一个。Date,首先第一个值是这个叫edu list啊,就是咱那个热门课程,然后里边是edu list,还有第二个是这个名师,名师我们叫teacher list,然后它的值就是这个teacher list,所以这样的话,这个接口我们就完成了啊,就是在这个一里边我们建立一个首页的名师和课程接口,然后他是查出了前八个热门课程,还有前四个名师。
18:15
写完了啊,包括上面还有一个那个跨域的一个注解,我们给他也加上。这个啊,是咱们写的这么一个接口部分啊。然后把这个给大家啊,我也是画在这张图上啊。但是查询。热门课程和名师的这么一个接口,然后它的接口就是咱们刚才写的这么一段代码,把这个代码啊给大家直接就。过来啊,主要这么一个结构啊。这么一个代码。然后咱现在把这个我们应该就最终完成了啊。就是他啊。所以这样的话呢,咱现在把这些接口应该做到了,然后剩下做的就是把这个接口数据查出来之后,在页面中做个显示可以了,咱最后来做显示啊,目前是完成了接口。
19:11
然后完成之后,我这个文档啊,咱们快速浏览一遍啊,跟我刚才写的应该是一样的,找到啊。在这个班的里边给咱查过了,就查出它里边那个所有的那个。幻灯片的数据啊,但是咱给他加了一个查出它前两个啊,我这里边写的查,所有咱查前两个,另外就是首页的课程名师,咱有前八个啊,前八个这应该写错了啊,前八个课程和前四个讲师啊。位置写错了啊,然后里边就是做这个基本查询啊,包括前八个,前四个咱在里边做到了,这是课程,然后这是讲师。注意啊,你代码写的稍微有点问题啊,应该是顺序写反了,前八个课程四个讲师给他写反了啊。但是东西应该是代码都差不多啊。这笔记啊,我先复制一下啊,给他稍微改一下。
20:01
给各位看的时候注意一下啊,这个有点小问题啊。就是这部分啊,前八个热门课程和前四个名师啊,这就对了啊,所以现在咱就把这个接口我们就最终完成了啊,然后在查的过程中,咱就用这个limit,然后做这个。包括他查出几条记录,通过last方法做这么一个语句的拼接。这个啊,咱就洗完了啊,然后洗完之后,最后我们在里边就来做它那个最终那个功能把这个可以做到啊。呃,然后这笔记一我重新共享一下啊,应该是Switch e丢模块中创建啊。
我来说两句