00:00
好,那我们之前呢,然后咱们是把my bet plus中的条件构造器呢,给大家演示了一下,那下面呢,我们来讲解一下my bet plus所提供的一些插件,比如说呀,然后我们my bet plus中的插件,我们主要来讲两个,首先第一个是咱们的分页插件,然后第二个呢,是咱们的乐观锁插件,首先咱们先来看第一个分页插件,My be plus中所提供的分页插件呢,大家注意非常的简单,咱们只需要来进行一个简单的配置,就可以来实现分页功能。那下面咱们就来演示一下,首先呢,我们需要先来配置我们当前my bet plus的一个插件功能,然后这个时候我们需要有一个配置类,大家注意点击右键,然后咱们先来创建一个配置类,比如说包咱们设置为conve,然后配置类咱们就叫做my be plus confi OK,啊好,然后设置完成之后呢,既然这是一个配置类,那所以咱们要加上的注解是eight configuration,然后这个时候大家说我们是不是可以把咱们的主程序,然后呢,把咱们的启动类上,咱们扫描map接口的这一个注解是不是也添加到我们的配置类上,虽然说我们也可以添加到这儿啊,那当然了,咱们有了配置类之后,建议大家直接添加到配置类上啊,好,OK,好,设置完成之后,然后下面那我们是不是就可以来配置并了,对不对,通过A的并注解,然后public。
01:33
大家注意怎么来配置my beatt plus中的插件,咱们所需要用到的类型叫my beatt plus intercept my beatt plus的一个拦截器,那其实呢,我们之前在学习my bet功能的时候,其中也有一个分页插件,对不对?然后为什么叫做intercept拦截器呢?其实很简单,我们之前在实现分页功能的时候,大家都知道是我们先写了查询功能,然后呢,它会对我们当前的查询功能进行拦截,然后在我们实现功能的基础上,然后进行一些额外的操作,以达到我们最终的一个功能,OK吧,好啊。
02:12
行,然后my bet plus intercept,这个是用来配置my bet plus中的插件的,大家注意啊,好,然后呢,我们的方法名呢,然后咱们就叫做my beat plus interceptor,好,然后再往下,那既然我们当前要配置这样的一个病,那我们首先是不是就需要把咱们的这一个对象呢?然后给它创建出来,但是呢,咱们也说了,这个是用来配置my be体plus中的插件的,对不对?那我们具体要配置什么插件,咱们就需要在咱们的插件对象中,然后来添加一个内部插件,大家来看叫ad inner intercept,那我们当前要使用的分页插件,它叫什么?大家看一下叫做page inner intercept OK,好,那我们CTRL加P之后,大家会发现在我们的构造器中是不是会有一个参数,这个参数呢?咱们来使用第一个叫做DB type数据库类型。因为大家。
03:13
都知道啊,在我们学习分页的时候,老师就跟大家说过对吧,然后我们的一些数据库,它的分页功能实现的过程是不一样的,那所以说我们现在最好是把我们的数据库的类型给设置出来,那我们现在来使用的是my circle,所以说咱们的数据库类型咱们就设置为MYS就可以啊,好,最终咱们直接把咱们的intercept来进行返回就OK。好,那这个是我们来配置了咱们的分页插件,然后再往下的话,那我们就可以来实现功能了,比如说点击右键创建一个测试类,这个测试类咱们就叫做my be。My be plus,然后plugins PU及啊,Plugins,对吧?然后test OK,好,那既然是测试类的话,我们是不是要加上spring test这个注解啊,然后再往下对我们所需要使用的组件来进行自动装配,User map user map OK,然后咱们先来创建我们的第一个测试方法public VO,叫做test page OK。
04:25
那怎么来实现呢?很简单,大家来看啊,在我们的user map中,大家记不记得咱们今天是不是看到了一个方法叫select page方法,大家看在这呢?看到了没,叫做select page方法,然后这个方法其实就是来查询我们当前的一个分页数据的,大家注意,那这里面咱们是不是应该有几个参数呀?是不是应该有两个参数,首先第一个参数是我们的一个分页对象,然后再往下是我们的一个什么rapper rapper是什么意思,大家应该都知道,条件构造器是不是应该是把我们符合条件的数据,然后来进行一个分页查询,OK吧,好,那我们先把这个方法给写出来,然后既然它需要有我们的分页对象,那我们就把这个方法给它打开,然后大家来看,然后我们当前的这个P,这个P是什么类型的呀?
05:20
大家看一下是不是应该是继承了ipg的类型,那继承了ipg的类型都有谁呢?然后我们在这直接一个CTRL加H,可以查看当前咱们接口或者类的一个继承关系,大家看一下谁呀,是不是就是这个配给啊,而且这个配给直接就是一个类,那我们是不是就可以直接来使用了,对不对,好。首先咱们在这儿来创建一个配给对象,然后这个配给对象大家注意一定不能选错了啊,然后这里面它的一个泛型,不用说一定是我们操作的实体类对象,对吧?配置等于六一个配置OK,那我们在实现我们的分页功能的时候,大家都知道分页my circle中的分页使用的关键字叫做limit。
06:06
Limit后边的两个参数大家还记不记得,第一个叫做什么叫inex,然后第二个叫什么叫做page size什么意思?第一个大家说是啥呀?是不是应该是当前页的起始索引,这个东西跟谁有关?跟我们当前页的页码以及每页显示的条数有关对不对?它的算法是不是应该就是当前页减一乘以每页显示的条数,好,然后配积size的话,是不是应该就是每页显示的条数对不对?那这个时候大家想想,我们要在my circle中来实现一个分页功能,我们是不是必须得知道两个条件,第一个就是当前页的页码,还有一个就是每页显示的条数,OK吧,这大家注意好,那所以说呢,那大家看,既然我们要实现分页,那我们CTRL加P,大家看一下。这个里面给我们写的是不是就是一个current current什么意思啊?当前页的页码size什么意思啊?每页显示的条数OK好比如说我们现在咱们来访问第一页,每页显示几条数据,三条数据OK好,写完之后大家再来看我们当前咱们的这一个配集对象来作为第一个参数,第二个参数是不是应该是条件构造器啊,那如果我现在来查询的是对所有数据的一个分页,那所以咱们是不是直接写一个null就行,对吧?大家再来看它的返回值是不是也是配置,那所以说有没有这种可能,我们当前咱们查询出来的分页数据就是在咱们的配集中的对不对?比如说大家看配给点里面是不是就有各种方法来获取跟分页相关的数据,Has next,有没有下一条数据,Has previous啊,有没有上,有没有下一页数据,然后has previous。
07:59
有没有上一页get pages总页数get total总记录数,OK吧,好,所以说这个大家注意,我们在这个地方,咱们直接把谁给输出,So,把咱们的配给对象给输出就可以啊。
08:14
好,那下面呢,那我们在这咱们来一个执行,大家来看一下看有没有问题。好,大家来看有没有问题啊。没有问题吧,咱们查询出来了几条数据,是不是应该是三条数据对吧,虽然说我们在这输出了配齐之后,咱们展示的是一个内存地址。那我们一会儿是不是可以来访问一下配齐中的各个数据,对吧?那我们来看一下我们当前的这个circle语句select的各个字段,然后加上我们当前的一个逻辑删除来查询未删除的数据,然后再加上我们当前的一个limit,那limit后边为什么是一个问号呢?大家来想为什么?因为咱们的limit有一种特殊用法,如果我们当前默认访问的是第一页的话,那我们是不是只需要来设置每页显示的条数就可以,对不对?如果我在这设置了一个二,大家来看,我现在再来一个执行。
09:25
好,大家可以看一下这个结果。好,然后这个时候呢,我们的limit后边是不是应该就不是我们之前所看到的一个问号了,现在就变成几个问号了,两个问号了,对不对?好,然后parameters,然后大家看第一个是三,然后第二个呢,也是三,这个大家应该都知道为什么吧?因为我们的第一个叫做当前页的起始索引,它的算法是不是应该就是当前页的页码减一乘以每页显示的条数,OK吧,所以说这两个都是三啊。好OK,那这个就是我们当前咱们的一个分页插件,它的一个简单的用法,那我们一会儿呢,然后咱们把这个配给对象中的各个数据,咱们简单的进行一个输出,来查看一下里面都有什么样的一个功能。
我来说两句