00:00
各位同学大家好,在前面内容中呢,咱们已经完成了第一个接口查询所有角色,包括我们添加了统一结果返回类,以及整合了完成了接口测试,那下面呢,我们继续往下来做,咱们来完成角色管理中的其他接口,那接口中呢,我们下面来做第二个接口,那就是条件分页查询角色,这个接口我们要做成什么样子,给大家先做一个说明。然后大家看我们这个事例的这个程序里边,咱们找到在系统管理中有一个叫角色管理,然后大家看啊,在这个界面中,我们明显看到有这么几个组成部分,大家跟我来看啊,首先第一部分,但从这里来看啊,这是什么?很明确是不是分页呀,比如说你看啊TOTAL3什么意思,是不是一共有三条记录,然后第二个十杠配置,表示每页显示十条记录,然后下面表示当前示第几页,因为这里边没有那么多数据,所以当前只有一页,另外我们往上来看看这个地方。
01:10
这是什么?是不是角色名称,比如我现在输入一个角色名称,根据它能做一个条件查询,并且带分页,那咱们来试一个啊,比如现在我是一个叫用户。然后点搜索,大家看得到什么,是不是用户管理员,他根据用户做了一个包括查询,所以以上是咱们要做的功能条件分查询这个介绍之后,下面呢,咱们通过来编写这个具体接口,咱们先做个说明,这个该怎么去做,我在这里边给大家写一下啊。咱们写之前来到MY的,咱们看啊,这里写到它有丰的功能,包括自动分页,然后怎么去用呢?我们点击快速开始找到,大家往下来看啊,在这个位置有一个叫插件,然后插件中有一个叫插件主体,包括分页插件,也就是说我们要做分页,通过micro plus第一部分需要配置一个分页的插件,这就是第一步,我在里边写一下第一步配置分页的插件。
02:22
那插件怎么配置,咱们看一下官网上的说明,然后咱们进行配置。咱们找到啊,插件主体中是它的配置方式,然后这里边看主要的,如果说你在死里边用配置文件方式,那你是这么来做,因为咱们用的是,所以怎么实现,我们写上一个配置类,就是configuration,然后里边加上这个插件,这是我们的配置方式,这个插件它已经写一个事例,就是以分页为例,包括这里边有分页插件的具体说明,你看啊,它支持各种数据库,然后能实现分页的效果,所以咱们现在第一步那就是配置分页插件。
03:04
然后这个之后,我先把步骤写完,我们的第二步操作,那咱们就编写CTRL里边的这个分页的方法。注意啊,分页咱们看到,因为咱们是条件分页查询,所以分页中呢,它需要有这么几个参数。什么参数,大家跟我想一下什么参数,第一个是不是分页的切换参数。比如说你现在有这个叫当前页和你里边的每页显示的记住数,比如说当前我是第一页,每页显示两条记录,然后除此之外我们还需要一个参数,就是咱们做条件的参数。然后什么参数,大家看我这里边啊,你看我这个事例的程序中是不是有角色名称,所以咱需要条件的参数,这是第二部分,然后这个之后我们在CTRL里边调用,在调用map,最终实现分页的操作,就是第三步。
04:09
调用service里边的方法实现最终的条件分页查询,以上就是条件分页查询的基本步骤,这给各位做了一个分析,那下面呢,我们按照步骤把这功能具体做一个实现,咱们开始写一下啊,第一步操作,我们创建个配置内,然后在里边加上分页的插件,包括这个我在课件中也都写到了,因为这是公共部分,所以咱就放到这个里里们置类。我在里边写一下啊。首先我在service里边,咱们先建个包,这个包我们就叫这个。这里写下啊,因为之前有这个目前叫M。
05:01
创建创建之后呢,在里边我们加上一个配置类。我把这个给它加上。这是配置类,然后加上配置类之后,在类上边,首先我们需要加上一个注解叫configuration,然后加上之后呢,其实它就是一个配置类,另外里边还有一个地方啊,大家注意。你看这个启动类上边是不是有一个叫micro,其实我这么加没有问题,但是我现在把这个配置我们统一加到这个配置类上面来,我把这个给他加上。这是加了这个。Map看就是map扫描,然后加上之后呢,这里面有一个小问题啊,这是spring中的技术,各位应该知道,我们这个启动的时候,它有一个包的扫描规则,什么规则是当前包及其子包,也就说当前我这个类的包是什么硅谷,所以扫描这个包及其包中那种,但你发现啊,我的配置类。
06:07
不是这个包吧,所以咱可以设一下启用类里边的包的扫描规则,就指定它要扫描哪个包下的内,那怎么指定?有一个注解叫com加上包的名称,我们统一扫描。com.at下面内容,把这个需要给它加上,设置扫描规则。然后这个之后配置类我们就完成了,完成之后在里边加上我们具体的分页插件,这个插件我从那个官网上咱就直接复制一下。也就是里边的这个插件,我把它直接拿过来。这个咱们。复制过来啊,这个插件,然后咱们一个一个看一下啊,首先第一部分就是这个my be plus intercept,然后在里边就是牛这个对象,最终返回这个就是根写插件,然后写的时候注意这个地方啊,特别强调。
07:05
你看啊,这里边叫DB type,是不是指的是你数据库的类型,咱们目前的数据库注意不要写错啊,我们用的是这个买搜狗数据库,这里边如果你直接复制需要改一下,然后除此之外下面还有这么一个配置。这个配置什么意思呢?这里写到啊。新的分页插件一级缓存和二级缓存是遵循买杯的规则,所以我们需要设置让它的值等于false,避免出现缓存的这个问题,但是这个属性在旧插件移除后,它后面也就是这个插件就是或者这个属性后面其实它会去掉,但是它目前官网上还是它,所以咱把它给它也加上,避免一些不必要的问题。以上就是插件配置,我再重复一遍啊。第一部分我们在service u里边建一个包,建个配置类,然后里边复制相关内容,注意你复制之后这数据库要改成MY,然后咱们把map扫描这个注解放到了配类上,放完之后启用类里边可以去掉,然后之后在启用类上边设置下包的扫描规则,因为它默认扫描是当前包及其子包中内容,咱们写上。com.at硅谷,这就是第一步操作。
08:23
然后这个之后,下面我们进入到第二步,第二步呢,咱们开始编写CTR了,那我来写一下啊。找到这个CTR。System,然后在里边加上咱们这个方法,我就写到这位置,这个方法就是条件可以查询啊,咱们写一下啊,先加上我们这个这个注解。条件分页查询。然后在下面的加上我们具体这个方法我们写一下啊,加上这个get提交。
09:00
然后在里边呢,加上我们的路径啊,这个路径中呢,我就直接加上这个当前页,还有我们这个每页的记录数,咱们用这种方式传入两个参数配置代表当前页,厘米代表每页显示的记住数,这位置我加个注释。配置。代表当前页,Limit代表每页显示的记住数。之后我下面加这个方法,我们加上public。这里问各位啊,后面怎么写?咱刚讲过,咱们目前是统一返回数据结果,所以后面写的应该是什么?是不是这个result,然后加上方法,这方法我起个名字,比如叫这个配置query。这个肉啊,就是条件分页查询,所以现在方法完成,咱们先一个值,先不让他报错,后面咱们再进行进一步的修改。
10:02
这是一个条件非查询方法,然后方法写完之后,在里边我们要做什么呢?强调啊,首先第一步。我们做条件分析,查询是不是有参数,那咱把参数得到,在参数中首先有这两个参数,当前页和每页技术数,那我们来获取一下啊,因为这么写是路径传值,咱通过pass valuable得到两个值,第一个值就是当前页。然后第二个值。我们来一个类型的每页显示技数,除此之外有咱们这个条件,这个条件呢,虽然咱是一个啊,但咱们也用这种对象形式做传递,那怎么来做,我在这里边呢,给大家写好了一个类,专门用于这个对象,咱把它来写下啊,这个类的名字啊,它叫这个名字。System。然后你看里边有角色名称啊,就是一个名称,所以咱用对象形式传递,这是我们三个参数,我再重复一遍啊。
11:20
当前页每页记录数以里边这个条件的对象。这么写条件的对象现在完成,完成之后呢,下面咱们开始写这个分页的具体的代码,那怎么来写呢?给大家写一下啊,做法肯定是调用service里面的方法进行实现,但是实现过程中啊,这里边有很多的细节问题,咱们先调一下方法,然后给大家说这个细节问题。System service在里边有个方法叫配置,然后大家看啊,配置里边呢,它里边有这么一个方法,或者说有重载的方法,第一个方法就叫配置,然后第二个方法里边有两个参数,一个叫配置,一个叫rapper,那什么意思呢?比如说第一个方法你只做分页,没有条件,第二个方法是条件分页查询,所以咱现在用第二个方法,而第二个方法中咱们明显看到有两个参数,那怎么去用,我这里写一下啊。
12:28
首先我们的第一部分。咱们需要创建一个配置对象,就是刚才的第一个参数,然后对象中呢,就是传递你分页中的相关的参数,比如咱们说的当前页每记录数,这是第一步,然后这个之后我们的第二部分就是封装条件,条件值,因为它可能为空,也可能不为空,咱需要判断一下条件值。是否为空,如果说它不为空,那我们就进行。
13:04
封装,然后最后调用方法进行条件分页查询。这是我们最基本的一个过程,那下面咱来写一下啊,第一步创建配置对象,我加上一个配置,注意啊,不要写错,是苞米豆中这个配置。然后配置里边呢,加上它的泛型。System我们起个名字啊,为了区分啊,我配置等于上一个配置里边两个参数,第一个配置。第二个。利,就是咱们说的当前页和每计数数,注意啊,两个参数一定要传进去。如果说你不转,那他查的是全部之后第二步我们来封装条件。那怎么封装呢?咱们讲map发时候曾经讲过啊,里边可以用很多对象封装,第一个你用一个quary drop可以,或者说你用一个叫lada都可以,那我就用lada封装,那我写下啊,System肉。
14:13
Rapper等于上一个拉块rapper,然后完之后咱做个判断,就是条件值不等于空,我们才封装。我写一下啊,怎么写,就是你判断这个VO的这个名称是否等于空,那我现在把这个名称给它取到。我取一下啊,Get name啊,咱先写一会咱再完善啊,先把一个结构写完,这里边肯定需要有完善的地方,这里边得到这个角色名称,然后得到角色名称之后判断这个值是否等于空,我写一下啊,在润里边有一个工具类叫string u啊,注意啊,用的时候别导错包是spring里边这个U。
15:02
然后它里面有个方法叫意思empty加上肉,如果说它不等于空,注意不要写错啊,你不能这么写,这么写等于它等于空了啊,你加个感叹号非不等于空,看一下这个方法啊。就是你看等于钠空字符串,如果它不等于捺,也不等于空字符串表示不等于空,不等于空的话,那咱们进行封装。用rapper里边这个方法。注意啊,这里边,因为咱们是根据这个名称做一个叫模糊查询,比如说我输入用户。得到用户内容,我输入别的值,得到别的值相关内容,这叫模糊查询,模糊查询的时候,在里边有一个方法叫like,通过它进行,然写下啊system,加上get,然后加上你这个。并称。
16:00
现在就完成封装,完成封装之后,最后调方法进行实现,咱们传两参数,第一个配置PMO,第二个叫最终返回它这个结果啊,这个结果呢,其实啊,我强调这个结果有一个特点。就这个结果呢,你可以加个返回值,然后把这返应值放到中返回是可以的,另外也可以不这么写,你直接这么来写,然后你把这个配置P给他拿过来也可以,因为他默认会像这里边封装费的数据,但是这么写很多同学不太好理解,所以我给他写的完整点啊,我加一个配置,或者说加上它那个接口叫I配置。这个啊,然后咱们加上范行。啊,不是先来一个配置这个,呃,咱来一个配置model啊,给它起个名字,这个位置加上泛型。肉。然后大家看里边啊I配置,它里边有很多的实现类,包括配置就实验了它,所以咱们写这个接口线类都是可以的。
17:08
最终把这个配置model传进去,这样的话条件分页查询我们就最终完成了,就是这么一个基本的过程啊,这里边给各位再重复一遍啊,代码虽然不难,但是里边也做了很多的事情。首先我们的第一部分。咱们在这个类里边有相关的参数,当前页每页记录数,包括条件对象,当前页每页技数数,我们通过径给他传值,然后它的条件对象通过一个VO对象得到相关的参数就是条件,比如你的决色名称,得到之后怎么做?第一步创建配置对象。在里边别忘记传入当前页和酶技术数,然后第二部分呢,我们封装这个条件,在封装条件的时候,这里边有这么一个特点,大家注意啊。
18:02
比如说我现在角色名称,它这个值不等于空,那咱进封装,如果说这个值它等于空,那咱就不需要封装,所以这里边做了一个非空判断,我这位置用了一个工具类润U条,这工艺类用的时候注意啊,一定不要导错包,它是润里边这个润油条,别的包装没有这个方法更完善。封装之后,最后调用方法进行视线传入配置对象传输条件,最终返回一个配置model,然后把它直接返回,这样的话咱们就完成了条件分页查询。以上是咱们写的这个接口的实现。然后接口写完之后,下面呢,我把服务器重启一下,咱通过swa two或者说叫啊,因为咱目前用的是增强版,最终来做个测试,看一下最后结果怎么样。等它启动啊,那我们来试一下。
19:02
现在啊,已经启动了,咱们先看一下数据啊,因为有的数据我已经删掉了啊,目前有两个总经理角色管理员来用它查询试一下啊。然后大家看,现在我把这个打开,用当前端口号8800,加上do HTML,然后各位看。是不是这个条件分析查询点开点调试,然后在里边有相关参数,注意啊,这个参数中这两个必须要填,这个就是条件值可以为空,也是这个意思,我条件值什么都不传,是不是查全部啊,传的话根据传的值进行操作,我这位置传入一个当前页,这是第一页啊,当前这个第一页每页显示就是咱显示这么两条记录,然后现在我点这个发送。大家看是不是得到数据啊,目前他得到就是两条数据,因为我一共就是两条数据,那我现在传个条件,这个条件呢,我就传个角色,因为咱们做的是模糊查询,注意这个地方啊,我再强调。
20:08
用什么?是不是like,这里写一下啊,Like代表的是。模合查询,如果你写EQ,那就是完全匹配啊,咱用like做模糊查询,现在我加个角色,加完之后点发送。大家看结果得到的是不是角色管理员一条记录,所以以上咱们就完成了条件非查询角色把接口最终开发用耐four g也完成了最终的测试。
我来说两句