00:00
好,当然我们说第二个流程也是这样,基本上每一个流程从代码上来讲的话,就分为四层是吧?客户端页面cler service map,那我们从底层开始写,先写map是在市场活动的map里边,根据我们的设计,应该加一个方法,这个方法叫保存创建的市场活动,它有一个参数,就一个市场活动实体对象,从客户端提交的参数全都分上这里边了,全都输入这个对象里边了。然后呢,在这个方法里边,把这个对象里边数据取出来,添加到数据库里边就行了,好下边我们准备来写这个,来写我们这个map层的这个代码了,好下边在市场活动的map里边加方法了,来加一个,然后呢,在市场活动的map里边加方法,那现在要操作市场活动那个表了,那市场活动这个表大家我们会发现以前从来没操作过,咱们咱们前面操作都是用户表,叫数据字典表,现在也操作个市场活动表,那操作市场活动表要写他map层的代码,我们说map层的代码嵌扯到三部分代码,第一个他操作表的时候对应那个实体类,还有一个mapper接口,还有映射文件,那这三部分代码我们说写起来虽然难倒是不难,但是比较占用时间,比较麻烦,特别你个表字段比较多的时候,你要如果自己手动写这三部代码,太麻烦了,知道吧,所以一般来讲,Map层的这三模代码一般不会让我们手动写。在公司里边也基。
01:28
不然也不会让我们收东西,因为写起来太占时间了,开发效率太低了,知道吧,所以一般都有什么逆向工程,对逆向工程有表了,我要操作哪个表,那我直接根据这个表逆向的知吧,反过来生成代码就行了。就我们正向思维应该是什么?写代码,操作表,知吧,有代码了,然后去操作表,现在这种逆向思维就是说有表了,反过来自动的生成操作这个表的代码,道吧,这是逆向的思维。
02:00
啊,所以大家那下边我们就准备使用MY8逆向工程来生成市场活动这个表对应的map层的三分大码,所以那下边我们就生成了,生成了买八子逆向工程是吧,那生成它的话,那我们这个地方来一个看看这个。在还是在我们这个工程里边,那我们只需要简单改一改我们这这两个配置文件就行了,知道吧,简单改一改这两配置文件,这个环境不用打了,我们上次已经搭建好这个环境了,好,下回我们来生成去了,那生成大家看第一个配置文件,来看这个配置文件信息需要改吗?对,不需要是吧,那因为你大看,你只要你这个是吧,在你电脑里边,你的这个数据库驱动,我所保存的位置没变,这个地方也不会变。知道吧,然后我们这数据库驱动都在没本地仓库里边,那我们这没本地仓库,只要路径没变,你就不用变了,再一个下边的数据库信息,你只要没换数据库,这些也都不用变。知道吧,那那这个地方我们就不用变了,但他这里边有的地方需要变,那这里边哪些需要变,我们说它主要配置这些信息,哪些信息,首先这些是跟数据库相关的信息,这些是不是也不用变呀,也不用变,对数据库相关这些都不用变,好下边再看这些是给让它生成我们的代码,然后呢,放到哪个磁目录,哪个磁盘目录里边,以及生成的代码放到哪个包里边,这里边哪个地方需要变吗?对下边这个保存的磁盘目录需要变吗?我们需要,你只要你的工作空间没变,这个下边这个东西不用变,下面这个包是不是有可能会需要变一变。
03:39
对,那你看这那你看你像这样,我们以前让他给我生成的实体类卖部接口映射文件都给我放到什么settings下边,相应的包子包里边,因为我们以前做的那个功能都是跟系统管理相关的功能,但现在我们做市场活动呢,市场活动是不是属于业务管理的功能,对业务管理的功能我们说了,他们的代码都放到沃克奔驰下边知道吧。
04:06
都放到这个地方下边,都放到这个work下,那说他下边也有一些do妹,Map service等等这些,那现在我们做市场,我们跟业务相关的代码,是不是他们生用代码应该放在这个包下边,对这个班,那这个包下边,那这些包名得需要改,其实只需要改这个地方就行了,那我们这个地方就改成什么,对我问纸就行了,别的都不需要变了。这是我们说市场活动的身体,来放到这个包下边,我和本质下边东门。好大,同样道理,生成呢,Map的映射文件也是这样,目录不用变,只需要变这个包就行了,那它是叫沃克位式,这样就行了,同样剩下的麦克的接口也是一样,然后呢,把这个包改一下就行了,好,这个地方呢我们就可以了,可以完了之后下边我们继续拉打,那这么这这一部分干完了,下边就是根据表,根据哪个表生成这三个打码。
05:03
哪个表生成,那你只我们说我们CRM项目所需的表都列到这下面了,当然我都已经注释掉了,你根据哪个表生成,把它那个注解,你知道把这个遮着吗?注释打开就行,对打开就能啊没有是吧,有有这里边都有CRM项目需要的表都有知吧,啊真没有有没有有我给你找找,这只不过跟咱们那个表名不太一样,是也,咱们那个表那个表名做简化嘛,是吧,也这些都是咱们从他那个公司边买过来的项目,买过来的时候他们那个表名。都在这里边注视着,咱们买回来之后呢,他有的是表名是吧,他有的是起的太长了,对咱们给他简化了,要太长的话,咱们在课堂上给大家演示,到时候那除了耽误时间,知道吧,也没有什么意义,所以我们把它有的单词给它变,变简洁了,变简单了,这样好,这个地方给大家强调一点,强调一点是哪一点呢?你根据哪个表,这一次根据哪个表生成代码的话,只把那一那一张表打开就行了,别的表像这些表。
06:17
以前已经生成过的代码,这这个表一定要注释掉,它就一定要注入掉,你别不注射掉它,你要不注入掉好了,你这次再一运行,它又根据这个表又生成一遍那三步代码,那又生成怎么了?你上次写的那些代码,把你的代码都给你覆盖掉了。你上次写的写了就白写了,知道吧,所以呢,一定要说根据哪个表生成,只打开那一张纸,别的表一定要注释掉,不注释掉,他又生成一遍,又生成一遍,那把你以前写代码都出,你写了也白写,就以前有一个同学什么做的都快,这这些什么功能都快做完了,到什么到后边有一个地方是吧,忘把以前的表注释掉了,好了,前面写的代码全没了。
07:03
对,麦森的代码全没了,又得重新再写一遍啊。是吧,所以这这这就这就麻烦了是吧,所以呢,我们这个一定要注掉,你比如我们这个根,上次根据user色表征,咱们那一定要把它注释掉,一定把它注释掉,不注释掉它又生成一遍,又生一面,把你前面写那个ul那里边什么实体类map接口映射文件全给你用,又生成一遍,又覆盖掉了,你以前写的那些方法都没了,知道吗。所以这是我们这好,下边我根据市场活动那个表设成啊,下边我只是打开市场活动表就行了,那市场活动表往下找啊,有哪一个地方看往下找就这个,诶这个表看吧,这个表。对,这个表叫marketing,这他们咱们买的时候,他们那个公司里边,他们就叫叫这个名字,但我一看这个名字太长了,咱们每次写代码的时候太麻烦了,所以我们给他简化了,简化成什么,简化成这个表了。
08:00
讲上这个,诶这个我们来打开往这个对打开咱们这个对这个表结构看吧,把它打开你看,然后呢,这个地方来一个这一个这一个表看吧,市场活动这个咱们把它那个表名简化了,表结构类似的啊,表结构基本上是一样的,那表结构这个,但我们这个地方给他简单去掉了几个字段啊,因为不去掉字段的话,写的时候太麻烦了,太耽太耽误时间了,知道吧啊但是当然不影响咱们开发,不影响咱们这个做这个项目,知好这是我们这好这样的话呢,我们把它打开就行了,把它打开,然后呢,这个地方好这样就行了,那把这个表名把它拷过来就行,把这个表名拷过来,这个F2CTRLC拷贝过来,你看咱们把这个表名简化了。啊,当然生成实体类,咱们也要跟咱们这个保持一致了,那我这个地方叫艾艾,对这样就行了。
09:07
好,只把它打开就行了,好这样的话,这个配置文件改完,改完之后呢,下边运行买八的内向工程,它就给我们生成代码了,然后再往指定的包下边放这边了,那你看看,好这样的话就生成了,生成之后呢,我们再看一看我们这个代码沃克被置下边,它看实体内已经有了,看看。这是我们市场活动那个表对应的实体类,然后呢,还有再看map接口,映射文件这种,好,我们在这个基础上来进行开发就行了,那来开发的话,根据我们的设计,在这里边应该加一个方法知吧,这一个方法就是保存创建的市场活动知道其实这个方法它已经跟我自动生成了,哪一个方法你看看,对就inser看吗?但是它的命名方式呢,给咱们的命名方式不太一样,咱们一般来讲insert activity你知道吗?然后里边就是activity,但是它这它有,当然我说他这插件,他们那些程序员做插件的时候,他们有自己的命名规则,但是他跟咱们的命名规则不太一样,你可以直接用它啊,但是我们说这样你要直接用它的话,跟你整个项目的这命名的这种风格就不太一致了。
10:15
啊,但你也可以在它基础上改怎么改,你比如大我这个地方我也改一下我这个的,根据咱们的设计知道吗?其如果是咱们自己写的代码,我整个把放到最后,最后吧,别给他混在一起了,我就准备用他这个,这样就行了,然后呢,这个地方来一个艾特,这样就行了,然后呢,这个地方我们也这样结吧,这。哎,这个地方这样就行了,哎。这个这是我们的这样,然后这个地方给他写个注释,这个地方来个保存创建的,创建的,然后呢是创这样这样我就可以了,然后呢,大家看我们说方法定义好了,下边来写他的搜索句了,他的搜索句,找到他那个搜索句,记住他这个词入他写这个所索句。
11:01
他写这个特手句大看,就这个知道吧,就这知道。直接用它就行了,然后呢,这个地方ID给它改一改,改成什么对I个pay这样就行了,知道吗?然后呢,大看这些ID知道吧,这些这都这都它字段知道吧。啊,当然我们这个地方一般来讲,新创建的市场活动,新创建的市场活动一般来讲刚刚创建的是不是一定它有两个字段,一个是什么修改者,修改时间,是不是一定没有人修改过。所以修改者修改之间这俩字段是不是一定是空的,就新创建的市场活动是不是这样的一定是空的,刚刚创建的肯定没有人修改过,他有两个字段表示这这一条市场活动有谁修改了,在在什么时间修改过?所以这俩字段一定是空的,所以一般来讲,我们习惯了在开发的时候,这俩字段只要是新添加的数据,这俩字段都给它空的,不添加它能添加的,除了影响效率,因为我一定知道,只要是in色的,一定刚刚创建的吗?修改者修改之间一定是空的,一定是后,那这俩这个后边这俩值也给去掉,这样就行了,知道吧。
12:13
好,这样的话,他跟我们这个搜机就行了,知道搜狗机行了map层的代码就行了吗?就道,所以其实大看我们说用他这种插件这种他这种用他这种插件它就比较简单了,知。当然这个35句,即使不用它的插件,要让你自己写,你也应该会写知道吧,你也应该会写知道吧,啊当然我们这个地方既然是我们这个自己改造了这个这个方法,然后呢,这个我也让他写到最后,这样以后我代码维护的时候好维护,这是我自己写的,好这样就行了,好这样的话呢,我们这个map层就行了。MY层写完了,下边我们继续按照我们的流程继续往上面写,下边写surface层法知,在市场活动的surface里边加一个上法,叫保存创建的市场活动知好下边我们来写我们这个方法,在市场活动的service加方法,那加的话,那我们说那它属于业务管理功能,还是在work位置上讲,在work上,那么写service是不是还得新新建包啊对新建包,右键新建包,那这个包叫做service这个包知道吧,然后呢,在这里边写一个创建一个接口。
13:24
我们service层都是面向接口编程,所以我创建一个接口,这个接口的名字咱们已经设计好了,叫activity service,我就直接写了activity service,然后呢,它这个接口让你行了,然后呢,我们这个地方来一条知道了。好,这是我知对刚才这个地方还有还有还有一个地方忘了啊,这个麦层我们什么已经让MY巴集成,让spring集成MY8了,那将来这个map动态代理要由spring来证么?来进行动态代理,那让spring动态代理是不是得让spring去扫描这个map所在的包啊,对,要不然要不扫描的话,你写了他也找不到。
14:05
所以那这方扫描的话,在哪扫描,对在这个spring集成买八的这个配置文件里边,在哪个地方,在这个地方大家看在这个地方扫描看吧,在这个地方上次我们写的让他扫描三清字下边的脉搏。现在我要让他扫描沃克奔驰下播了买块,所以那么那扫描再加一个怎么加了,对逗号是吧,然后呢,我给他换一个号,然后呢,把这个沃克奔驰下边的map也扫描了,这个沃克奔驰这样就行了,这样我们这个map层就可以了,刚才把它给忘了是吧?好,下面我们继续来写我们的sorry词。那这个service我们已经创建这个接口了,那在这个接口里边定一个方法,这个方法咱们已经设计好了,范围值int影响记录调控,你知道吧,然后呢,方法名我们也已经设计好了,在流程图上面,上次课我们都已经设计设计好了,叫save create,叫创建啊,叫保存创建的市场活动activity这样就行,在这里边有一个参数,这个参数根据当中设计是个实体类对象,叫activity,试题类对象这去了,这样的话,我们这个方法就定义好了。
15:18
方法定好了,那在它实现类里边也得加这个方法,那它的实现类我们这个地方还得再创建一个实现类,然后呢,在这个service这个包下边右键再创建一个包,这个包来一个I'm PL,好吧,然后呢,在这里边我们来创建一个创建一个叫市场活动service的一个实项类,那我们这个地方来一个叫activity,然后呢,Service I'm PL,知道吧。这是一个时间类,那说这个时间类它要实现咱们那个接口哪一个接口,就这一个接口叫市场活动service的时间,这个service的实验这个接口。那么它是service层类,要加一个service注解,那这些加一个service注解,然后呢,这个地方还有service注解,那么说将来这个市场市场活动,Service的这个时间类将来要在死spring,要纳入spring容器的管理,那我们说这个类将来它会创建一个对象,在死spring容器里边保存着那这个对象这个B的名字,我们这个东西给它起个名字,这个名字咱们的命名规则就是这个接口,接口名前面这个字母改成小写的就行,这是大家习惯知道吧。
16:30
好,这样的话再我们这个地方就可以了,那我们说我们基于注解的编程,那这个注解要想让它起作用,必须让S去扫描这个包。所以那我们这个地方让spring去扫描下,那spring去扫描这个包,那么在哪?在总的配置文件,以前我们让spring去扫描setting下边的service了,现在让他扫描沃克奔驰加service,再考一份CTRLD,然后呢,把这个包名改一改,改成我们的沃克奔驰这样就行了,这样的话大看我这个注解就可以起作用了,将来。
17:08
好,这样的话,我这个service,这个service类我就定义好了,定义好之后下边我来写在这个类里边写文们代码了,那写完代码它实验了这个接口,要把这个接口里边定义的所有的方法都得实现,那我们来实验吧,按照alt insert,然后呢,Implement method,好,这个service层方法的实现要调麦层了。那调map层要拿到map层的一个B,那如何拿到注入进来就行了,来注入在这定一个成员面料,叫市场活动map的一个这个接口,来一个市场活动的map,然后呢,这个地方来定义这么一个成本变量。然后呢,让他注入进来,来个auto world,那由于这些包都被spring去扫描过了,所以这些注解都可以直接用了,知道吧,好,这样的话我们就可以了,可以完了之后注入进来wiper了,在这service方就可以直接调了,是吧,那直接调的话,那这个地方来调,它就调调这个市场活动mapper里边一个方法,哪一个方法就是咱们刚刚写的那个方法,叫保存创建的市场红率,叫它看这东insert就这个方法。
18:20
然后呢,把它的这个参数市场活动实体的对象成功了啊,市场活动act实体的对象,这样的话,咱们这个service也写完了知道吧。啊,这些你只要设计出来这些代码就比较好写了,知道吧,好。
我来说两句