00:01
那刚才我们了解到的呢,是这个通用map啊啊,接下来呢,我们再来看一下,除了通用之外,实际上买business plus呢,还给我们提供了一个通用service,那这个通用service呢,在通用micro的基础上呢,它显得更为强大,所以呢,我们来了解一下这个通用service,那么通用service呢,它实际上给我们在我们的my business class当中呢,提供了两个成员,一个成员呢是I service,这是一个接口。啊,另外一个成员呢,是I service I'PL这是一个实现类,那当然了这个I,呃,这个service I PL呢,它是针对这个I service接口的一个具体的事情,那接下来我们来看一看这两个啊默认给我们提供的组件,我们应该怎么在我们的项目当中进行使用好,首先呢,我们在项目当中创建一个service包,然后呢,创建一个user service,也就是针对刚才我们的实体user来创建的一个service接口,然后让这个user service呢去。
01:13
继承I service啊让user service呢去继承I service,好接下来呢,我们来创建一下。六件啊。一下你这个package。Service,好,接下来呢,我们。右键。New一下Java class interface啊好,然后接下来呢,User servicece,我们把接口创建出来,这个service呢,刚才我们说到了,我们用它XX什么呢?I service,好,那I service呢,我们来看一下它的源代码,这个呢,就是一个interface,它也是一个接口,它是我们的通用service,这个通用service给我们提供了哪些方法呢?你看它给我们提供了更丰富的方法,是不是啊,这里面包含我们先摘几个看啊,比如说批量保存。
02:16
啊,还有呢,就是批量保存或更新对吧?啊还有呢,就是还有什么。根据ID3啊还有呢,就是。根据ID批量删等等吧,还有呢,这个我把这个删掉啊。还有什么?还有执行这个查询对吧,执行查询结果的数量看啊这个。看看啊,还有呢啊,你会发现还有分页是吧,还有分页功能啊,还有什么呢?还有一些更丰富的一些功能,这个后面我们后面再看啊,所以呢,我们在这个里面呢,先接触几个啊,一会儿在测试的过程当中,那么另外呢,它也有一个泛型,这个泛型很显然根据我们前面的经验,也是你要管理哪个实体,那你就写哪个泛型好吧,好,那么接下来呢。
03:15
我们在这个地方就要把我们的药管里的实体的泛型呢给它写上,所以呢,这块是user啊,好,那这样的话,我们的service接口就创建好了,那我们现在的这个service接口是不是已经天然自带了很多增长改查的一个接口实现了啊,那你默认情况下要做这个基本增长改查的话,在service里面其实你就不用去写这个接口的定义了啊,只需要把这个接口定义出来就可以了,但是service这块呢,光定义这个接口是不行的,最起码呢,我们还要定义一个实现啊,实现这块呢,我们也是根据我们之前的习惯,在service这个里面我们创建一个package叫I'PL好,那么在ipl里面呢,我们去创建一个叫做user service'PL的一个实现类。
04:07
所以右键new啊,User service I'TL,好,那么它既然是实现类呢,我们就要先去实现employments刚才我们创建的这个user service接口。啊,然后接下来呢,因为这个user service这个接口,实际上它自己本身呢,也有一个实现它的这个实现呢,叫做user叫做service啊这这呢啊I service啊,我们把它点进去,好,这个I service本身呢,它也有一个实现,这个I service的实现呢,叫做。Service I'PL明白吧?啊,所以呢,我们来看一下这个service m PL怎么用,那么怎么去用呢?在我们刚才写的这个user service m p里面呢,我们首先先X。
05:00
探一下X探啊X谁呢?Service ipll好,这个servicepll我们点进去你会发现呢,它是不是。实现了刚才我们看到的I service呀,那也就意味着什么呀,在这个service m PL里面,它把I service这个接口里面所定义的一些常见的一些业务层的方法是不是都实现了呀,好,那么它实现的这些业务层方法在哪呢?在这个地方他都给你实现好了哈,比如说我们举个例子,批量保存。那么他在这个地方呢,对批量保存的业务逻辑呢,进行了一个实现啊,比如说呢,在这个地方我们写一个批量执行,那么在这块呢,它执行了一个批量执行的SQL语句,也就是说你可以给他一堆SQL,然后他给以给你批量执行啊,所以呢,这个是我们的一个通用业务,那既然。我们的service in PL已经对刚才我们的I service里面的抽象方法进行了实现,那也就意味着只要我们的user service in PL。
06:15
继承了这个service m撇,那么我们这个里面。的抽象方法是不是就不用实现了,只要你继承它就好了啊,所以呢,这个里面的抽象方法来源于哪呢?是不是来源于user service他的父亲的I service啊,那么所以呢,在这个地方我们先让user service安条来继承service,安条这样的话呢,就继承下来绝大部分已经实现的业务方法,那么我们再通过employment去实现user service的话,我们就可以在我们自己的user service里面去写什么呀,去写一些在通用业务里面没有实现的方法,也就是说未来我们可以在这个地方去自己定义我们更丰富的,更个性化的,更基于业务的一些扩展的方法,好,如果在这个地方你定义扩展方法的话,那么在这个地方你就可以写扩展的一个实现了,那如果没有的话,我们直接就这样写就可以了,当然了,这样写的话呢,是有一个前提的,我们。
07:20
来看一下,这位是安P啊。Service m条里面呢,这有一个泛型对不对?好,这个半型是什么呢?第一就是MM是什么?M必须是一个继承base map的这样的一个类,那么到目前为止,在我们的应用程序当中,继承base map类呢,就是user map了,所以呢,在我们自己写的这个啊,Service m PL里面,如果我们要按照这个结构把泛型写出来的话。在哪个地方写,在这个地方写啊,按照这个结构把这个发型写出来的话呢,我们这个地方必须得是继承base matter的,那谁来继承base matter啊,就是我们的user matter,我们曾经用它呢,继承过我们的base map,好,然后第二个范型写什么呢?
08:13
这个泛型写什么呢?这个范型很显然就是base map,它管理的是谁,那我这个范型就是谁啊,所以说呢,Base map管理的是T,那我这个发型就是t base map管理的是user色,那我这个发型就是user,所以说这面我们就知道了,因为我们的user色,Map管理的是user色,所以我们这面呢就是user啊,所以这块呢,就是我们整个的这样的一个业务层类的第一,好,那他这块呢,有三个需要注意的地方,第一呢就是它。继承了service mpll,第二个呢,就是他实现了user service,那么继承service mpll的目的呢,是默认情况下就会拥有service m PL里面定义的一些业务方法了,我们就自己不用去写了,那么实现这个user service的目的呢,就是如果未来我们在user service里面再定义自己的特殊的业务逻辑的话,那么我们可以在user service m PL里面呢,在这个地方呢,再去对这个里面特殊的业务逻辑呢做扩展,然后做个个性化的业务实现,所以呢,这样的话呢,就帮助我们提高开发效率了,基础URL东西,那第三个呢,就是这个地方我们的办型一定要根据我刚才说的user,呃,User matter和user它们两个呢,是一一对应的,对应我们的user service啊啊好把它写好,写好之后呢,大家不要忘了在这个地方呢,写一个service好吧,这样的话呢,我们的这个实现类呢,就创建出来了啊好,实现类创建出来之后。
09:45
是吗?我们在呃,我们的测试项目当中啊,就可以去创建我们的测试用例了啊,我们测试项目在这个Java这个用户下哈,然后创建测试用例呢,就针对它来创建,你会发现我们也不用写任何的一行这个具体的代码,只需要把这个类定义出来就好了,我们就可以使用这个service,因为这个service里面呢,有已经写好的一些增项调查好,那么在这个里面呢,我们去创建一个测试类呢,呃,之前叫micro test,我们呢给它起个名字叫service test。
10:19
Service test啊,用和之前同样的方式,我们呢来构建这样的一个测试类,好,然后接下来呢,这块呢,也是一样的resource,但是这个resource呢,我们注入的呢是user service啊好,把user service注入进来之后呢,在下面这块呢,我们就可以直接使用了,我们先来啊使用一个比较简单的吧,啊,我们来还是来做一个查询啊查询最简单好,那所以呢,就写public wide test。啊,我们来做一个。
11:02
这个统计数据的一个查询,那么就是user service点啊,它这里面有个方法叫count,好然后直接呢,我们来得到他的这个结果就可以了,看看,然后这块实际上查询的是总记录数啊,好然后接下来呢,我们就看看对吧?行,接下来呢,我们右键啊乱一下。好,我们来看一下后面。这面呢,它执行的一个搜狗语句呢,就是select count,然后圆括号星from us。那么最终执行出来的啊,查询结果呢,就是一共有五条记录,那么我们输出的这个结果呢,也是一共有五条记录,我们再来看一下数据库当中确实是有五条记录,所以说呢,这块是对我们的一个通用service的一个测试。
12:12
我们再来测一个啊。一个例子太少了,我们再写一个,比如说呢,我们写一个批量增加,好test public还是IDE吧,然后test safe Bach是吧,好,然后接下来呢,我们呢,来嗯,做一个批量增加,这个批量增加呢,比如说我们批量增加五条记录,那所以呢,在这个地方我们就写一个,写一个五啊,好,那么I呢,从零开始一直到小于五啊,然后I加加啊,所以呢,我们在这里面呢,可以谬一下。New这个user吧,好,我们把这个user呢,创建到一个数据列表里面,为什么要创建到数据列表里面呢?我们可以发现user service,它这个里面呢,有一个叫save Bach的一个方法,这个save BAT这个方法呢,它接收参数就是可以接收一个集合类型的这样的一个an list,所以呢,我们就为他组织这么一个an list,那么为了这个目标呢,我们就组建这样的一个列表,好好,那所以呢,在这个里面呢,我们就user.setname。
13:35
嗯,花花加I是吧,啊,然后接下来呢,u.s。20加I行吧,嗯,好,然后接下来呢,我们啊,肯定要组建一个列表嘛,所以在前面呢,我们来new一个列表啊,New ay。List啊,然后接下来呢,我们这边写user啊好,然后接下来呢,我们在这个地方呢,给它定义到users这样的一个数据集合里面啊,然后最后呢,我们把所有的user呢艾到这个users这个数据集合里面就可以了,好接下来呢,我们把users呢watcht一下。
14:22
那这个呢,就是我们整个的这样的一个结果,那它最终返回的呢,是一个布尔值啊,布尔值是什么呢?就是是否成功啊好,接下来呢,我们来打印一下这个不啊是插入是否成功,好,我们来运行一下右键。运行。好,然后我们往下拖一下,好,我们来看一下这面呢,实际上执行的soql语句呢,是insert into user,然后ID name age values啊这样是吧,啊然后呢,它因为是一个批量插入嘛,所以你会发现呢,它在整个的这个数据插入的过程当中呢,它只构建了这样的一条词笔记,但是呢,后面的呃,这个占位符呢,它是准备了12345,准备了五份,然后呢,用不同的这个占位符呢,来啊替换这个啊,它的这个问号啊。
15:35
的这样的一个部分的内容,所以呢,最后呢,就插入到了我们的数据库当中,然后我们看一下数据库吧,刷新一下发发01234是吧,插入了我们的啊,四条五条记录啊,然后呢,因为email这个字段呢,它是可以为空的,所以这面呢,Email呢我们没有去设置,那么它默认情况下呢,就插入了一个空的数据在这个里面,所以这块呢,就是我们的批量插入,那么了解到这个批量插入之后呢,我们再来多看一下啊,就是看一下这个save bitch,我们ctrl out进去。
16:11
看一下这个SOBA的实现,那它返回的是一个布尔值是不是啊,它为什么会返回这个布尔值呢?我们来看so Bach,我们再点进去啊。点进去之后呢。在这个里面呢,呃,它会。有一个布尔的一个返回,然后这个波尔的返回呢,是在。这个地方进行了一个return,好这个return return的是谁呢?Return的是Bach,也就是说执行批量circle这样的一个方法,BA呢,我们再点进去,你没发现呢,这块呢,它返回的是circle helper circle helper里面的这个BA这个方法它的返回值,它的返回值是什么呢?我们再点进去,好这个地方实际上最终返回的就是什么呀,就是我们看它的这个。
17:04
啊,布尔的这个返回这块啊。找他的那个。返回值这块。我看一下啊。这呢是不是啊好,我们找到这个称语句,找到这个语句的后面这块,大家可以看这块啊,它实际上就是在判断什么呀,在判断这个返回的这个结果列表是不是为空,对吧,如果这个返回结果列表不为空的话。那么我就返回一个处,返回处是什么意思,就成功呀,对吧,那我无论执行哪一种批量的一个语句,只要我对数据库当中的影响的结果,你是增加也好,你是删除也好,你是修改也好,只要我对数据库的这个影响。
18:10
是不为空的,那么我就返回处,也就是说是有影响的,有影响的话,那我就执行成功对不对,如果没有影响,就是没有对这个数据库的增删改啊的执行成功了,那么就是没有影响,那么我们的返回结果就是false,所以说像这样的一些复杂的操作,那么在买贝蒂斯plus当中,它都帮助我们实现了,否则的话,这些业务逻辑我们需要自己去实现,所以这个呢,就是通用service给我们带来的这样的一些强大的功能啊,希望大家在课后的时候呢,能通过阅读这个源代码,好好的去学习学习这些大神们写的这样的一些代码哈,好,就是这样的,如果我们自己写的话,可能业务逻辑处理的就会比较简单啊,然后你会发现这个里面它的这个业务逻辑处理的呢是比较严谨的,所以这块是我们的通用service的一个学习。
我来说两句