00:00
好,那我们刚才是通过query rapper来实现了一个修改功能,然后下面呢,咱们来考虑一个问题,如果我们当前咱们的条件的优先级发生了变化,我们应该如何来实现,就比如说呀,然后我们先来创建一个测试方法,Public VO test05 OK,好,然后那我们现在咱们要做什么呢?比如说我现在我找到我们的这一个笔记,然后大家来看一下我们的条件变成了这样的,是将用户名中包含有A,首先这是第一个条件,第二个条件,并且呢,咱们的年龄大于20或者邮箱为null的这个用户的信息进行修改,大家可以来比较一下这两个条件,大家看一下一样不一样啊。好,大家来看这两个条件应该是不一样的吧,对不对,因为我们当前咱们的条件的优先级发生了变化,那所以说我们当前咱们的需求也是不一样的,那如果我现在要想来实现这个功能的话,那我们应该怎么来做呢?大家看好了,这个时候我们就需要来使用我们相对应的一个方法,然后来实现这个功能了。首先呢,咱们同样还是先来创建我们的query weper,然后泛型设置为我们的实体类类型等于另一个query wrapper OK,然后carry weper,然后点来设置我们当前的条件,比如说如果我们现在要来设置第一个条件,也就是我们的用户名中包含有A的话,咱们应该来使用的是like方法,对吧?然后我们要操作的字段是U的下划线内,然后我们要来模糊的值应该是A,然后呢,下边的话,大家看这中间是并且那没问题,那如果我们直接去点的话,大家想想那这。
01:49
这个时候,然后我们去点我们的第二个条件,年龄大于20,那应该是GT,然后年龄A,然后大于20,然后再往下写第三个条件,然后是邮箱为空,然后is nul,啊中间还有一个O呢,对不对?咱们先来对用A方法,然后再点is null,然后把我们的email字段给放进来,那这个时候是不是跟我们上面的是一样的,然后这个时候咱们还有条件的优先起貌,然后是不是这个条件就会跟我们上面这个条件是一样的,然后按照我们当前的顺序来进行一个判断,那这个时候呢,还是我们所需要的一个效果吗?不是,因为我们现在呢,咱们是要把年龄大于20或邮箱为null来优先判断,然后再结合我们的用户名中包含有A,然后来作为条件查询相对应的数据进行修改,对吧,这个时候我们应该怎么做,大家看好了啊。
02:49
那这个时候我们就需要,然后来使用一个我们的按的方法,那咱们的按的方法呢?然后里面大家可以看一下,然后咱们有一个consumer consumer是不是我们所学习的拉姆的表达式里面的什么呀?是不是我们所学习的拉姆的表达式里面的这一个消费者接口,对不对?那所以说呢,那我们当前咱们可以怎么去写,我们可以把这个and方法把它给打开,找到咱们的consumer,然后这里面的consumer的泛型呢?然后是per,那per又是什么意思呢?大家往上看,因为这个per其实就是我们当前咱们的按方法所在的接口中的泛型,那我们来看一下per泛型,Per是具体需要运行函数的类,其实也是我们当前weper的一个子类,那换句话来说,其实咱们的per它就是谁,它就是我们当前的一个条件构造器,那所以说我们现在用了and方法之后,我。
03:49
们就可以把咱们的条件构造器写在我们的and方法中,怎么去写,因为是消费者方法,消费者接口,那所以说消费者接口中一定是有参数的,方法中的内容就是我们对参数的一个操作方式,对吧?所以说比如说咱们的参数咱们定义为A,然后呢,咱们一个箭头,然后下面是不是就是我们要来执行的一个内容了,对I的一个处理方式,那因为I现在来表示的是我们的条件构造器。
04:19
那所以说我们就可以把咱们剩余的两个条件通过我们当前的拉姆的表达式来写在我们的my be plus的条件构造器中,大家要注意一个问题,就是咱们的拉姆的表达式对吧?然后中的条件优先执行好,这个大家一定要注意优先执行好,那我们下面可以来测试一下,既然这个A来表示的是条件构造器,那我们后边这两个条件咱们应该怎么来设置A点,大家看一下是不是就是咱们的条件构造器中的各个方法呀,对不对?好,年龄大于20GT,然后年龄是A级字段,然后逗号20,然后再往下咱们的第二个条件是不是应该是。
05:09
或邮箱为空,那所以咱们要先调用A方法。然后再来实现我们当前的邮箱为空is nul,然后emil OK,大家注意,这就是我们当前的这种用法啊,大家记好,当我们来使用了按的方法以及or方法的时候,如果我们使用了拉姆的表达式,那拉姆的表达式中的这个条件它一定是优先执行的,OK,那下面那我们就要来设置我们要修改的内容了,比如说我们还按照我们上面的这个修改内容来进行设置,如果说我们当前呢,咱们满足条件的话,咱们把用户名给改成小红,OK,然后这个邮箱呢,咱们还是保持咱们的test at it,硅谷点com OK,下面我们再来使用我们的user map user,然后点update来进行修改,然后通过user来设置我们要修改的内容,通过query mapper wrapper,然后来设置我们当前所匹配的数据,也就是咱们的条件好获得我们。
06:14
最终执行的一个结果,然后so,然后咱们来输出一下对吧,Result,然后冒号加上result OK啊。行,那我们先来观察一下有没有符合条件的数据啊,首先呢,我们是不是要来保证用户名中必须得有A,来大家看用户名中有A的,然后呢,应该是我们没有被删除的数据,对吧?大家看一下哎,在这儿啊,这已经被删除了,那比如说咱们把这条数据给改了,好他现在是处于未删除状态的,对不对?然后再往下,然后呢,咱们的第二个条件就是年龄大于20,然后或邮箱为nul,大家看它没有年龄,但是他的邮箱是不是为null啊,那所以说我们当前咱们的这个条件是不是就能够匹配到咱们的这条数据,OK吧,好,那下面我们在这咱们来一个执行,大家看一下这个时候的S口语句,跟我们之前咱们所测试的修改有什么区别?
07:14
大家来看一下啊。好。来我们最终声响的行数是一没问题,然后我们的circleql语句大家来看,然后这是我们当前的条件,这是我们的前提条件,然后必须保证我们当前咱们所操作的数据处于未删除状态,然后下面呢,And username like,然后and后边咱们的这个条件是不是加了一个小括号啊,那在我们的SQ语句中优先执行的,大家想想是不是就得加上一个小括号对不对?所以说呢,加上小括号的这个条件算作是一个整体,那我们最终咱们的效果就实现了,OK,所以说在买be plus中,如果大家要想来设置优先执行的条件,那我们就可以来使用咱们的and方法,其实all方法里面也有,大家来看一下啊点or大家看在这儿是不是也有一个consumer对不对,它的功能跟我们当前咱们的and的功能是一样的,OK吧,好啊行,那这个是我们当前条件的一个。
08:20
优先级大家要注意该如何去实现啊。
我来说两句