00:00
就是实现统计分析模块,它的具体功能,首先呢,咱们还是按照我刚才说这个先做这个准备工作。那怎么准备呢?我现在在wi里边,咱们创建一个新的模块,让这个模块专门做这个统计分析部分,那我把这模块按照咱之前学的过程创建,右键建个model。然后里边我们选一个维稳工程点,下一步把这个做创建啊,我们给它起个名字就叫。Service。啊,Service,这应该叫sta,就是统计分析,我把这单词复制一下啊,这单词不太好写啊,Stas啊就这个啊,或者说你简写就叫sda。啊,都一样的啊,就是那个统计分析模块,我就叫这个名字了,然后把它下一步咱们做个创建。这个模块我们就串出来了,当然创建之后呢,这过程中呢,可能会遇到一个问题,就是你那个图标不变,那我们等它加载完成,咱看图标变不变,如果不变的话,我们手动给它改一下。
01:06
啊,咱们稍等一下,等下面加载完成之后你再看,因为现在没加载完,它应该还没有变,等加载完成之后你再观察对不对啊。因为它加载它需要就是重新加载你的文有工程重新进行编译啊,包括里边一些相关内容,它给你下载下来。咱们稍等啊。这个应该是加载完成了啊,然后加载完成之后,咱们看一下我这个创建出的项目,咱看一下啊,我发现。Java图标没有错,Result是没有变呀,所以咱手动给它改一下啊,这是它,哎就是工具本身问题,就你创建模块超过三个,一般会有这个问题,那咱们就改一下啊,怎么改我之前都说过了啊,你点右键。找到这个叫open model setting在里边把它那个项目那个结构那个里边打开,找到对应的文件夹和它的结构,Java是resource resource是不是它咱改一下啊,然后这个并不需要啊,就是它resource改成这个咱点OK。
02:07
把这个判定出来。所以这个啊,我们做了一个修改,你看现在图标就变了,然后在result里边,咱给他建一个配置文件,就咱之前写那个OB。Application。把这个我们先创建出来。这样的话啊,这个就改出来了。然后改出来之后。下面啊,我们做一下就是一些基本的准备,我就从课件中复制了啊,首先配置文件中咱们有这个内容,这些内容我就直接复制,咱们给他就改一下就可以了,把这个直接就拿过来啊,这个内容。复制到咱的配置文件中,因为咱们现在是一个新的模块,所以我改一个新的端口就叫8008。啊,这是一个端口,然后名字这些应该都不需要变啊,这个咱一块改啊,这是我们那个na口的地址,然后这改完之后咱就往下做,因为现在我们这里边要去操作我们那个统计分析表,也就是操作是这张表,所以咱们根据这个表把它那个代码还是用代码生成器,咱先生出来啊,那我来生成一下哈。
03:17
当然我的课件中啊,还有这段配置,咱也说过,就这熔断器嘛啊,这个我就不加了,因为暂时啊用不到,用到加上也可以啊,一样的就是咱们需要加个接口,包括它的实验内加那个熔断机制啊,下面我用代码生成器,把代码我们先生出来,我就写这个T里边。先给它建个包,就这个包我就叫sta DEMO了啊,就起个名字,然后把代码生成器从我们其他模块就复制过来,我就从这里边。复制一下就是这个啊。把它咱们拿过来放到我们这个模块中。这里边。然后放完之后,咱们把它里边内容给他改一下,最终把我们的代码生出来啊。
04:04
那咱们做个修改啊,首先第一个呢,改你这个路径,因为咱们叫service settings,呃,这个我就复制啊,省得我敲错。应该是这个名字啊,Stats就是我们那个名字啊。Service ceds,这是路径,然后往下看,这位置是数据库,不需要变,这里边是它那个包,咱们把包给它就改一下啊,比如这个包我给它改成这个叫就是它吧,Sta service。叫这个名字啊。就这个,然后下面这里边写你那个表的名字,这个表我到这里边复制一下,我们叫sta,这里就是你日期中那个统计表。把表名字咱们复过来,所以这样的话把代码生器就改出来了,最终它会创建包,就com.at硅谷,包括里边这些内容,然后生成我们对应的controller service map试题类。
05:01
然后咱们执行看效果啊。这个先执行一下。然后执行之后,它会在里边生成,生成之后呢,咱再创建启动类啊,然后再写里边的其他部分啊,咱们一步给他准备出来啊。你先等他行起来啊。这里边应该是成功的,然后咱看一下代码是不是都可以了,包括controller service map这些都有,这是controller啊,比如说给它改个名字啊,我就叫这个,呃,Sta啊,就这个名字。包括咱把那个跨域注解加上,省得一会儿又忘记啊。这个完成了啊,然后完成之后下面在里边我们加上它那个启动类,比如说启动类起个名字我就叫ta application。这是一个启动类,然后启动类里边要加上它一些相关的注解啊,咱给它加一下啊,就是有一个子boot包那个。
06:00
还有就是一个叫conven这个。看啊,咱要去。用那个。就是common里边那个内容啊,给它加一下,我们加一个叫。Base package等于一个数组,然后里边加上那个包的名字,com.at硅谷啊,这个咱需要加上,都是之前我们加过的啊,然后加上它之后,因为咱们后面要用到那个就是NAS的注册中心,所以要加一个叫unable discovery client,另外他还要做这么一个,就是远程调用啊,咱需要加这个注解,就这个unable。Client都需要加上,另外里边有这个map,咱需要加那个map扫描啊,给加的比较多,或者你把map扫描放到一那个配置那种,我就在这里边直接加上啊。然后把map那个包的名字复制过来。这个包。把这个咱给他拿过来啊,因为目前主要应该就是这么几个,然后加完之后在里边有那个问方法,我就从课件中直接就复制了。
07:05
啊,就是里边的这个,包括上面有这些这的注解,应该就是这么五个注解啊。第五个里边是问方法。所以这样的话啊,咱们现在把这个sta的这么一个项目,我们就结构串出来了,包括里边的相关的类啊,这些内容应该都有了,这个咱就完成了啊,完成之后呢,下面咱就来写一下我们的具体功能,那功能咱刚才做了分析,因为咱们现在想做的效果就是统计某一天的这么一个注册人数,而某一天的注册人数咱肯定要查这个U3这个表,所以我们把这个查询过程写到U3的模块,然后一会儿在ST模块去调这个模块,得到那种最终加的数据库啊,咱按照这个流程来做到。就是我刚才画的这个过程,在U3的中写这个接口,查询某一天的注册人数,然后在sta中调这个接口,得到数据,加到我们这个表里面去,或者说加到数据库中啊。
08:10
这个啊,是咱们要这个实现,那下面咱们先写U3,然后再写sta的这么一个,要用按照这个图咱给他写出来啊。那我们来写一下啊。这口先关掉啊,咱先来到sta里边,在sta中的,咱就来创建这么一个接口,那我就写到这里边的啊,U center margo中了啊,写到这个位置。然后在里边写下这个接口。这个接口做的适应,就是我们要查询就是某一天的这个注册人数啊,就是做这个啊,那里边写方法,咱来一个get提交。这里边起个名字,因为我们要某一天的注册人数,比如起一个就叫count。啊,就这个名字了啊,查询某一天,后面传入你的某一天那个日期我就来一个。
09:07
这是我们的结构,下面写方法public r,我们来一个叫count,但是这个返回值来之前写过啊,就是有两种形式,你写R可以,或者说我直接来一个这么一个int类型也可以,因为它反应值要么是零,要么一,要么大于一的这些值都可以啊,我就写个R给各位,再写一种方式,你写个int也没有错啊,都可以啊,看你的这个习惯了啊。所以写个R,然后在里边呢,把这个日期给它得到,加这个注解就是一个pass,然后加个string。这个天数啊,然后加上之后,下面我们调survey中的方法把这个查出来,当然这个查的话各位注意啊,因为它里面要有这个统计这个函数,包括要有语句,还有这些,所以咱把这部分我们就编写个circle语句实现,因为这个过程如果你用买plus它不太好实现,再一些语句肯定是更方便通过语句把这做到啊,所以咱们还是写最后语句。
10:12
那我来写一下啊,咱调这个方法,Member three里面的方法,这些方法比如我就叫count这个日期里边传入这个日期,让方法返回的就是一个int类型,因为它的这个结果要么零,要么大于零啊,就这个值我就叫。Count。这个啊,咱们写个方法,最后把它做一个尾退R点这个OK。点上这个date里边给它起个名字,比如名字我就叫这个count,然后它的值就是这个count。这个啊,我们就做到了啊,然后做到之后咱下面快速写和map,把这个给他写出来啊。这是service。
11:00
咱不要就是根据天数查询,然后再写它那个map。就写这个时间内啊,然后写map。实现类中把这方法创建,最后我们写那个map。那在里边我就加一个叫base map,点上咱这个方法叫count day里边传入你那个日期这个啊完成最后咱写这个。Micro部分,Micro里边按照咱之前说到的,你先在这个interfeit中创建一个接口,创建完接口之后,是不是要写它对应的那个插M文件啊,就是里边的这个地方。所以把这个我们最后写一下啊。我先加个注释。这个功能我们要做的就是查询某一天的注册人数,因为要查询,所以咱加上一个。标签就就是这个。Select标签在的后面有一个属性叫ID,还有一个叫result type啊这单写一下ID里边呢,加上是你这个方法的名字。
12:12
把这加上result type加的是你的返回的类型。大题类型要写什么?各位注意啊,大家看我方法反什么?是不是一个int类型,所以里边写法两种写法,第一个写法你可以直接就写个int int是里面一个别名,相当于就是int类型,或者说还可以怎么写,写你这个in t,它那个全路径,就是它那个包里路径,就你可以这么写,来个Java点了点上这个。印太照都可以啊。我就写一个包路径了,然后写完之后在里边写上咱的语句,是我刚才写的这个语句,这语句要会写啊,Select count from表,然后where加条件,但是条件咱只想根据日期查询,我们加了一个叫date函数传入你的日期啊,这date函数就表示把你这个结构中只取它的。
13:06
年月日日期的部分把这取到,然后咱做一个条件。这个啊语句给大家复制过来。就是我们的这个语句啊,然后语中它有一个条件,这个条件咱们把这值改一下,因为现在我们写成固定的,咱要传入是我们的这个值。啊,这个写下啊,加一个井号,然后加上一个D。所以这样的话,我们把这个就完成了啊,这各位要会写啊,然后说到这里边我再多提点啊,也是咱们在买非点券学到的,大家注意啊,就是如果说你里边是一个参数,那我在这个井号中随便写个值就可以的,这个没有要求,但是呢,还有一点啊,如果说你现在是两个参数,比如说我来一个值随便来,假如我叫这个,呃,什么内部。注意我现在是不是两个值,如果说你是两个值,那你就不能再这么写,这么写就不对了,那两值怎么写?
14:06
希望各位知道啊,我这里重复一遍,如果你遇到要会写,是咱们之前在买杯的阶段学过的,那有两种方式,第一种方式也可以这么做啊,根据你的参数的位置来获取,比如我现在写个零。那什么意思?就表示取你的第一个参数,就这个D的一个参数,假如我现在写个一,就表示取你的第二个参数,用它的索引位置取到这么做是可以的,然后如果说你不这么做,第二种方式,那怎么做呢?你需要加上一个注解,要这个P这个注解,然后P里边的起个名字,假如这名字,比如我叫AA,那怎么做,通过AA来取这个参数,就是这位我写一个叫AA,你取这个P尔姆这个注解里边这个名字,通过它取你这个值,这也可以加一个,然后加这个名字取这个值啊,所以两种方式各位要记住啊。
15:00
我再重复一遍,我们目前呢,因为只有一个参数,所以我这里边写个D就可以了,一个参数随便写值,但是如果你有多个参数不能随便写,那怎么做?第一种方式,根据位置取,这个位置是零,这是一,然后第二种方式,前面加个注解,加个名字,比如我叫A,那根据AA把这值可以取到。这个啊,各位给到知道啊。所以我们现在咱回来啊,因为我们只有一个,那我就随便写个名字,比如就叫D,或者你叫个A啊都可以啊。这是我们写的接口部分啊,咱们把它就完成了,通过某一天查询某一天的注册人数,把这值就给我返回,然后这过程中有一个问题,也是之前说过的,大家应该都解决了,就这个插文件默认不加载,所以咱们需要在我的po文件中先配置里边的这段话。能找到啊,就这个。哎,不是,这个po应该在这里啊,在po中先配置这么一段话,让他去加载你的插文件,然后这个配置之后,在我们那个我们这黑的配置文件中,咱再加上一些配置,指应你的文件位置,就加上它。
16:11
那这个路径啊,咱们看一下啊,com.at硅谷edu center map叉L这个加上之后,我们现在它就能加载配置文件,然后咱能执行这个操作啊,所以咱们接口就完成了,就是写这么一段,基本所有语句按照咱之前说的过程,把这做到语句会给大家会写啊,这语中用到一个函数叫date函数,取到你的日期部分。所以咱们完成了啊,然后完成之后呢,咱下面做的是在我们这个ST这个模块中去调这个U3的模块,那咱给他就调一下啊,来看怎么做啊。首先这个肯定都注册,然后你在这个群类上边加上这个叫。An able f client做这个服务发现过程,然后都选之后,咱们在里边我们就创建一个interface,指定你的服务的名字和接口地址,做个调用就可以了,那我写一个啊,比如我就叫一个U3。
17:13
这是一个interface,在interface中咱加上注解,第一个注解叫convenent,就是交给使用管理,第二个注解叫这个B,指定你调的服务的名字。那我把那服务名字从u center中咱们分过来啊,咱们调的服务就是这个名字,Service u center。给它拿到我们刚才那里边来啊,就是。这里啊,直接输过来,然后这个写完之后,在这个interface中,我们要指定你调的那个接口,那个地址,包括它的方法参数等等,那这过程中咱就从这个u center中把这个。复制过来啊,就这段内容啊,把它复制。复制之后改它路径加参数啊,改一下啊,它路径这个路径edu center member。
18:09
后面名字是count'reject加一个day,然后在这个参数后面,咱要指定它那个参数的名字,我们叫day,这个完成了啊,跟咱之前写的一模一样,我就不在课件中写了啊,都是之前一样的内容啊,然后都选完之后,最后咱在这个就是it中就把它注入做个调用就可以了,就调用得到你那个注册人数,然后把注册人数最终加到我们的数据库中啊,那咱们最后写这个调用。就写这个ST中这个过程啊。咱们来实现一下啊。就是现在呢,在这里边,比如我现在先做个猪啊O。Private应该叫c daily service,就叫这个ta service。啊,这个名字,然后下面我们写这个方法。
19:01
这个方法要做的事情就是。统计某一天的注册人数。然后把这人数加到我们的数据库中,那咱们来做个统计,比如说里边我就来一个。后次提交在这位置,咱给这个方法起个名字,就是统计某一天的这个注册人数,比如这个方法,哎,我就随便起个名字啊。这个名字无所谓啊,比如叫这个。这个count后面肯定也是传你的这个天数,下面写方法。Public r。我叫康。这里边把这个取到啊,咱加个。Pass这个注解,然后加个词,这个day。加上之后下面啊,咱来做这个操作啊,就是现在我们要怎么做呢?咱肯定是要调我们这个U3的中那个接口,然后把数据得到啊,而这得到数据之后,咱最终要给它加到我们的数据库中,就是把那数据最终生出来,那咱们现在啊,我就把这过程啊,都写到我们这个service中,在service里边把这流程我们给他最终实验一下。
20:16
啊,那我写到这个位置啊。用这个ta。点上这个方法count。在里边传入你的这个天数。然后最后我就给他直接吞这么一个,OK。这里边啊,就写一个结构,咱们把重点都放到我们这个这里边啊,就是threat里边。我把这个注解写完善点啊,统计某天注册人数,生成统计数据。然后下面咱写这个services,在里边呢,把这个方法先创建,然后创建方法之后在实现类中,咱就把这方法最终做实现啊实现一下,但实现过程中呢,因为咱要调那个U3的这种东西,所以我现在在里边咱就把这个给他拿过来啊,就我们写这个u center client这部分。
21:09
啊,给他输入过来。诶,我看到一个小问题啊,我这个写到了。呃,这位置啊,写到这,下面应该给他建个包更好啊,给他再来个包吧。这包叫。可烂的啊,然后给他。放这里边去啊。这个位置啊,咱家来调这个这功能,那现在啊,在我们的service中写一下啊,先把这个u center client先给它注入进来。我们加个to。Private u3。U center client,然后注入之后在Switch里边,咱就通过远程调用,把这值我们给它就得到就可以了啊,那我们给它得到一下啊。就是远程调用得到。某一天的。
22:00
注册人数,那咱用u center里边的这个方法叫count,里边传个day。但是各位注意啊,这个方法要返回到咱刚才我特意返回的不是int类型。是个什么?是不是一个R对象,如果你是int,那方便直接取的就是int,咱直接加出就可以,但是现在我是一个R对象,所以咱需要通过R对象把里边值取到才可以啊,这是跟之前不太一样的地方啊,那就给他就取下啊。我这里写一下给他改个名字啊,比如叫这个呃。这个R啊,这个啊,然后咱们把里边的值给它取出来,那怎么取呢?各位注意啊,在R对象中,咱往里边放值的时候,咱是这么放的,是不是咱们点上一个。Date往里面放了,那咱取值怎么取,是不是就用get date,然后根据它里面K把这是不是取到,因为你注意啊,Date里边的结构是不是KY6,它应该是一个map集合啊,包括咱看一下这R对象啊,咱也回顾一下。
23:05
Date是map,所以咱们把先取到,再根据里面的K把这值再给它获取出来啊,这是我们的获取方式,那我来写一下啊。点R,点上get date,你看,Get date返回的是一个map集合。然后咱们再点上一个get,加上你传过来那个key,就是它的key的名字,咱刚才的key这个名字叫count,所以把这个我们就可以取到啊,这是我们的这么一个写法啊,然后取到之后它默认值是个object,咱给它变成一个int类型啊,就是一个in啊。In,比如我们叫这个值,包括这里边啊,我们给它做一个。强转这样的话,咱就把这个。某一天的注册人数这个值我们就得到了,通过远程调用把这得到啊,这个是我们的这么一个写法啊,你注意这个特点啊,因为它反是个R对象,咱通过R对象把这取到,这么取也是可以的,或者说你如果想方便的话,让这接口反应int类型,那里边直接取就可以了。
24:14
这个啊,完成,然后完成之后,咱下面要做的事情就是把我们获取到这个数据,最终添加到数据库,就是我们那个统计分析表里边。就可以了啊,最后就是做一个简单的添加,当然在添加中啊,各位注意啊,因为我们现在我只是以这个为例,这几个值我就不写,它也是做调用,然后取,比如你的课程什么数量啊,我就以它为例,所以咱们重点做这个注册,然后这几个值呢,为了咱有效果,比如我就模拟几个数据,咱就用个随机数给它生成,主要咱就看这个注册,这几个跟他一样的啊,咱以它为例。然后这里边其他的用个随机数来生成,那咱看一下我的课件中啊,比如咱完善随机数怎么做呢?一个很简单的方式。
25:02
大家看这个代码叫random us里边有一个叫nice int,它就表示啊,从这个范围中把这个随机数取出一个值,然后给他加到数据库中,一会咱就这么来模拟啊,主要是咱们取这个注册人数,最终加到数据库就可以做到啊,这咱们一会儿来完善啊。所以说这节课呢,咱主要就是说这几个东西,第一个把咱做这个统计分析的需求给大家做了描述,咱主要就是两个功能,第一个功能咱就是把某一天的注册人数给他查过来,放到咱的统计表中,第二个把你放到统计表中,数据用个图表做个显示,两个功能生成数据图,这个数据的显示。然后这个说完之后,咱又说到了,我们这里边要用到这种远程调用,咱刚才在U3中把接口写出来了,然后用sta也调这个接口,最后咱要把数据加到数据库啊,那咱一会儿来完善这节课我们先做到这里啊,就通过这节课,你至少把我们要做这个事情来指导,知道我们统计分析模块主要做这个两个过程,第一个就是查出数据进行存储,第二个做图标显示啊,所以咱们一会儿再进一步完善。
我来说两句