00:00
那刚才我们讲的呢,是自定义map啊,自定义map呢,它能够帮助我们去在持久层啊进行一系列的。自定义,也就是说数据库增删改查这个级别的自定义,那么有的时候呢,我们需要自己定义一些自己的特殊的业务逻辑,那这个业务层呢,也需要我们有针对性的去做扩展,所以呢,这种扩展呢,我们是定义在service里面的,那么我们自己写的service呢,叫user service,所以呢,我们把这个扩展。接口定义在user service里面,那比如说我在呃,User里面我们找到。接口,我们就可以直接在这个地方定义任何我们需要的一个扩展方法了,好,定义完了之后呢,需要在实现类当中把它实现出来,所以呢,在这个位置我们可以out加enter,然后呢选择implement method。啊叫实现这个抽象方法回车好,那这样的话呢,它就会帮助我们制定。
01:05
这个E。呃,他就会帮助我们自动的打开这个user service m PL,然后呢,帮我们创建出这样的一个实现的一个具体的方法来,那我们在这个位置呢,去添加我们要实现的内容就行了,当然了,根据我们业务的不同,在这个业务方法当中,您可以写,呃。更为复杂的一些业务逻辑,那因为我们现在这个是测试,我们就不添加一些复杂业务逻辑了,我们直接呢,在这个里面进行map的调用就行了,那么map调用怎么调用呢?这个也是一个需要说明的一个关键点啊,大家注意听,默认情况下呢,我们在service里面去注入map,那有可能有同学会这样去注入。Resource啊然后呢,这块呢是private,然后这块呢,我们写user map,然后写user map,好然后下面这个地方呢,我们就直接调用user map.select。
02:04
我们刚才写的这个select or by name这个方法啊,然后呢,我呢,在这个service这个地方呢,我就,嗯,比如说。我一会在调用service的时候,我要传进来一个name,那我就把这个name也同样的呢,通过参数传进来是不是啊,所以说呢,这块就是。我们定义的,呃,这样的一个。业务层的一个方法了,那同时呢,我们可以把这个select out的结果呢,直接return回去,那我们可以在这个地方写点。啊好,那我们这个方法呢,就完成了。就完成了,貌似好像没有问题哈,好,那实际上也是没有问题的啊,那一会我会说一下更为简单的一个方法,我们先把这个方呃方式给他测试一下,Service test把它打开,打开之后呢,在这个里面呢,我们就添加对刚才那个方法的测试,比如说test。
03:00
Public的好,然后呢,还是。Test啊,我们刚才写的那个叫做什么方法。叫做list all by name对不对啊,那我们就list all by name。好,那我们把这个方法呢,进行一个测试,然后接下来呢。我们调用刚才我们的这个user service里面的。List all by name,比如说这个地方呢?我插入一个名字。啊,这个名字呢,比如说我查这个汤姆啊。阿汤,然后接下来呢,我就可以把这个内容呢。给他输出了,所以这块呢是users,然后接下来呢,还是。Users老规矩,For each SOC好,这样我们就把它写好了,写好了之后呢,我们先来测试一下。软啊。
04:09
好,大家看这个结果。是不是跟我们预想的一样啊,它生成了这样的一个SQL语句,并且呢,在这个位置填充了一个参数,然后呢,帮助我们查询出了一个数据列表,当然这个数据列表里面只有一条记录,那接下来呢,我们再来说一下关于这个位置的一个优化。啊,这个位置的优化。我们可以这样写,把它直接屏蔽掉。然后呢,这个地方我们直接可以写base map。诶,看一看是不是也成立啊,我们先来运行一下啊。右键运行。大家看结论是不是跟刚才是一样的呀,也就是说实际上我们在这个地方写的。
05:05
Base。就是刚才我们用的user map,那这个base map是哪来的呢?既然我们可以在这个地方直接定义,就说明是他爸给他继承下来的,对不对?所以你上他爸那找去,肯定有啊,好,那么他的父亲在这个位置叫service m p,那么service m p这个地方呢,我们传进了一个叫做user map的一个泛型,好,那么我们点进去看一下这个service m p。好点进来之后呢,我们可以发现我们的user map。继承了base map,然后呢,实际上这个M就是刚才我们所说的user map这个发型,而这个M是什么,是不是就是base map呀?对不对啊,然后在他整个的这样的一个业务查询的过程当中,实际上呢,它都是使用base map来做一些基本的操作啊,包括后面这个地方都有base map的身影在,所以呢,实际上在我们前的这个业务层当中,如果呢,你想调用当前的业务层所涉及到的这个19层的map对象的话,那么我们并不需要在这个里面进行额外的注入,我们直接拿到base map。
06:25
就可以了,明白哈,所以这块呢,是base map的一个使用啊。
我来说两句