00:01
各位同学大家好,欢迎继续收看上硅谷视频课程,我们继续来开发医院设置接口,刚才呢,我们完成了查询所有的医院设置信息,包括逻辑删除功能,以及在里边整合了swa two进行测试,包括进行的统一返回,结果的定义就是这个轨道对象。那咱们下面继续开发医院设置中的其他的接口,那咱来写一下。首先呢,我们先做这个接口,因为刚才呢,咱完成的查询,只查出我的表里边的是所有数据。但实际中查询咱要做什么,是不是一个叫条件查询?另外。就要带上分页了,所以咱们下一个接口先来开发一个条件查询带分页接口,然后开发之后我们再开发下一个接口,那就是添加。医院设置接口包括添加之后,我们再来开发修改医院设置接口,而修改中有两接口,第一个接口就是根据ID先获取医院设置。
01:13
然后获取之后,下一个接口就是修改医院设置接口,以及咱再写最后一个,那就是批量删除一遍,这是接口,所以咱们下面就来开发剩下的这么几个接口,各位先给他知道,那咱们就一个一个来写一下,首先我们先写第一个条件查询在分析接口。那这个接口要做成什么样子,给各位我先画一下这个效果,然后一会儿我们进行开发。因为咱们今天呢,主要开发是接口,咱们还没有写到页面后面写到页面之后,这效果应该更加明显,但这个效果我觉得各位应该都见过,所以各位来画一张简图,在先做个分析,然后来开始进行开发。条件查询在分页查询医院设置信息,那这个怎么做呢?给各位说一下,首先我们查之后。
02:10
在这里边是不是要显示医院设置信息啊,里边可能会有很多条记录在里边做显示。然后在显示过程中,咱们在页面的下边是不是有一个分页条啊,在分页条中至少应该有这么一部分包含它的是不是首页。尾页,另外里边有这个就是上一页,包括下一页是不是这些信息啊,所以咱们要加一个分页,然后加上分页之后,在我页面的上面是不是有个条件呀,比如说我现在可以根据医院的名称。或者说这个医院的一个。编号,然后咱们可以进行一个。查询,比如在里边你可以输入名称,可以输入编号,最终我们点上这么一个查询按钮,最终我们可以进行一个查询,所以咱们要做出来的就这么一个效果,在里边实验的就是条件查询带分页的这么一个功能。
03:11
这个座位你就知道。然后这个功能具体怎么做呢?给各位强调,首先第一个咱要做的时候,大家看这部分啊,这一部分是不是咱们的条件部分,所以咱们把条件是不是要传到咱们的CTRL或者说我们的接口中去,在接口中得到传回来的条件值,然后根据它是不是做一个条件查询啊,另外因为咱们加分页,分页的时候咱是不是要传参数,包含你这个当前页,包含你的每页记录数,这些值咱们在接口中是不是都要得到,得到之后最终我们再进行我们最终的那个操作,所以咱们下面就来根据这个过程把这个我们来。做个实践,那各位写一下。我说一下具体怎么做在这里边。咱们现在做的就是。
04:02
条件查询再分页,那怎么做呢?首先我们做到第一部分,咱们是不是要传条件,而条件值咱们传递一般是用对象的,所以第一步呢,咱就可以创建一个view类,用这个类封装我们条件的这个值,这是咱的第一步。而这VO类,我在刚才咱们复制那个就是model里边已经提前写好了,再来看一下,在model里边,这里边有个地方就是VOVO中有一个hospital里边有一个叫hospital site query VO这里边就设置了我们那个条件值,包含医院名称,包含医院编号,所以这是我们的第一步。咱就写上一个VO类,然后在里边用于条件的封装,这个我这里边已经做到了,然后做到之后呢,我们下面操作就来编写这个是不是这个CTR,那我来写一下就是第二步。
05:01
咱就开始编写CTRL了,然后在CTRL里边呢,获取到你那个条件的对象,包含你那个分页的那个数据,比如说我们的当前页。包括每页的那个地读数。因为这些我们都需要,然后用它做一个条件查询待分页,所以第二步咱就来编写这个controller,那我在里边写下。首先分页嘛,查询咱们就是还是用一个。Get,提交,然后在里边加上一个名字,比如我们叫这个find。配置这个就叫find配置了这个名字,然后后面传入我们的当前页啊,优美的技术数,咱通过路径传当前页,比如叫这个current。然后每页技数我们叫这个limit米都给它传进来,然后传完之后我们写这方法,那就加上一个public,注意咱们接口都返回什么。
06:09
是不是这个result对象,然后起个名字,我叫find,配置这个hospital set,把这个咱给头过来。这名字我也叫它了,然后在里边呢,我们需要得到传过来的当前液啊,优美的技入数,因为咱是通过路径传递嘛,所以在里边加上这个pass这个注解第一个当前页。Current,然后第二个,第二个pass,注解就是每页技入数,我们叫这个limit,把它做个盆例。然后除了这两之外,咱是不是还有第三个参数呢?那就是我们那个条件这个对象,而条件因为咱们写了一个view对象,所以我通过对象的形式把这个咱就给它直接反过来。是这个B项。我们叫好p set query view,所以这样的话,把这些值我们都传过来了,然后传过来之后,下面那就开始做这个条件查询带分页了。
07:12
那分页怎么做?不知各位是否记得,咱当时讲这个LP中曾提到过,这是第一步。怎么做,是不是先创建一个?配置定向里边传递,就是我们刚才说的那个两个值。我写一下一个当填一还一个每页的基础数,那咱就妞一个。配置对象里边传入这个叫好,再然后这是配置等于new上一个。配置里边两参数,第一个当前页,第二个每页计数数,所以这是里边的第一步,然后这个做到之后,第二步咱就可以调用方法实现。分页的查询,那我们调这个就是hospital set service里边这个查询方法,现在service中把分页也做了更多,里边的方法就这种。
08:11
配置方法,然后配置方法中两个参数,第一个就是我们这个配置对象,第二个是那个条件,但是条件其实是在这里啊,所以咱们在里边把条件构造下。那怎么构建?咱就用LP中这个条件构造器,它叫做query rapper。Hospital set,然后rapper等于U上一个query rapper在里边是不是要设置它的特件值,因为我现在想根据两个值,一个是医名称,一个是医院编号,比如说医院名称咱们做一个模糊查询,然后编号做一个实际的等于查询,那我们来写一下,首先模糊查询。用的是那加上字段,加上你那个值,另外还有一个那个医院的编号,我们也是按照同样的方式,加上rapper.eq加上编号。
09:09
加上它那个值。这是我们一个基本结构,然后这里边咱把那个对应的字段汇过来,第一个医院名称我们叫。His name。把这个拿回来,然后第二个是医院的编号,我们叫out code。这是两值。而这里边各位注意,现在这个值都在哪里。是不是在这个VO对象中,因为咱是通过它成来的,所以第一个我通过VO对象取到它这个名称,然后第二个通过view对象取到它这个code,这样的话条件值是不是就构建出来了,构建之后咱把rapper传进去,最终就返回我们想要的这个结果,比如我们叫配置。Hospital。把这个我们这里返回,所以这样的话呢,咱就把这个条件查询带分页就初步做到了。
10:07
然后做到之后,最终我们加个T,返回这个result。点上OK,传入我们这个配置好的t that,这样的话,咱现在这个接口就初步做到了,就是里边的这么一个结果。然后咱们完成了,但是完成之后呢,大家来看一下,比如说我们这么写。我这接口是否有问题?或者说你接口如果这么写的话,能否正常进行下去。大家看一下。能否正常进行下去,所以咱们看一下里边有问题啊,其实问题就在这里,大家注意,因为我这个条件值就是这个页面中。是不是可能有,也可能没有,可能两个都有,是不是也可能两个都没有,如果你有条件值的时候,那我们来设置这个,如果没有的话,是不是就不需要设置,所以咱们需要做件事情,是不是事情对条件值是不是做个判断呀,如果有值的话,我们再设置,没有值的话,咱是不是就不需要设置,所以下面我们把这个做一下。
11:17
首先我把两只先取出来。第一个就是。医院的顶峰。这是一个,然后还有一个就是医院的那个编号。这是两值,我加个注释。是第一个。医院的名称,然后第二个是。医院的编号,所以咱们把两值取出来之后,那下面我们做一个判断,如果这个值啊不等于空,那我们才设置等于空,咱是不是就不需要设置。然后怎么判断的,在这个。Spring里边有个工具类叫string us里边有一个方法叫意empty,然后咱传入host name,如果说这个值咱加个感叹号C,它不等于空,那咱是不是才设置这个条件等于空,是不设置这是host name,然后那个host code跟它写法一样,我们再加上一个。
12:20
If判断。然后咱们来一个string us.e empty叫ho扣等,如果它也不懂空,那我们再向里边设置它的值。然后这样的话,判断完成了,最终我们再调方法做一个分析查询,然后反应它的结果,咱们通过result做一个统一结果返回,所以这就是关于我们实现的条件查询带分页的这么一个实现,这个我们就做到了。所以各位能把这个代码给它快速写出来,这里边主要就是涉及到这个地方。当前页每页计数数,咱通过固定传递,然后它的条件值通过对象传递,当然这个值可能为空,也可能不为空,所以咱做判断,如果不等于空,咱才往里面设置,如果等于空,我们就不设置,最终调方法再来实现我们。
13:18
最终的结果,那这是关于消音查询带分页接口的开发,我们就做到了。做到之后呢,我现在把服务器重启一下,咱通过swa把这个做测试,就看一下最终效果我们能不能做到。那我们来试一下啊,看一下结果。我现在把服务器启动了,然后启动之后我打开这个。拉杆。在里边找到我刚才写的方法是这个方法啊,当然后面也可以加上中文提示啊,都不完善,我们就做个测试了,然后方法中大家看里边几个参数,第一个当前页,第二个每就是数,然后第三个第四个是不是你的名称和你的值,那比如说咱来试一个。
14:08
假如现在我就直接查询这个值,我先改一下啊,因为我只有一条记录,咱用它零改一下,然后这个值,比如说我现在查询这个就是。协和医院我就搜一个协和,因为我这里边做的是一个模查询,然后这个都写完之后,咱们点这个try it out,大家看结果。是不是就查出来了,包括比如我们现在再加个条件,就是它这个编号加进来,我们再点再到。结果是不一样,这样的话条件查询带分页我们就完成了,就是里边的这么一个开发。各位把这过程能给他快速做到,就关于这么一个功能。就写完了,然后写完之后呢,就是我们这么做完全可以,但是大家发现啊,就是这个地方你看啊,我现在是不是有两个条件,所以我们写两个输入,但是如果你有更多条件,咱是不是要写更多输入,就这么写肯定没有错,但是咱们在前端操作中有的时候并不方便,所以咱为了前端方便,我们经常要改个地方,什么地方呢?咱就把这个传的时候呢。
15:21
加上一个注解,这注解给大家写一下他的名字,这个名字。叫做request的body,然后在里边呢加一个值叫request等于Bo,我们一般给它加上这个注解,进行这个参数值的传递,然后这个注解什么意思呢?给大家解释一下,Request保底。快是不是请求啊?它就表示咱们通过Jason数据来给我们传参数,然后把这些数据值能放到对象中去,然后require等于false,表示这个值可以为空,因为咱圈值可以没有,所以咱们一般用body,用season形式传数据。
16:02
而你用块包底之后,这提交方式不能是get get提交方式得不到值,咱需要改成叫POS提交,POS提交才能得到蕊块的包底换回来的值,所以这个是它一个特点,所以咱一般经常都这么做。那我改完之后,咱来看一下啊,这是什么效果。刚才的效果是在里边我们来输入它里面这些值,但是现在呢,我改成叫request的body,咱们看它会变成什么样子。那我们来测试一下啊,首先服务器启动了,然后到里边我再刷新,大家看它的不一样的地方啊。各位发现了吗?下面不是直吧,而里边写什么后右边有失力,就是你写那个。这是什么?这计算这份数据啊,所以咱们通过listen传参数,然后这这数据在我们接口中会把数据封装到这个对象中去,所以咱们一般都经常这么做,这么做的好处就是前端传值方便,因为咱们接口怎么写都无所谓,前端如果你这么写更加方便,所以咱们现在用这种方式进行传递,然后传完之后,比如说我们给它做个测试,在里边我就写上这个叫。
17:18
比如协和院,然后咱们这里边一包括三,大家看这个类型是什么,是不是现在我点tryout。结果是不能查出来,所以咱们经常都是正确用A形式进行这么一个传递,这各位给他知道,也就是说里边我们用这个叫request的body,通过request body用Jason形式来传递里边这个。用的数据,这是关于我们写到条件查询带分页的接口,咱们把这接口就完成了,包括通过W测试,它也可以正常运行。
18:00
我把这个给各位接过来。得要求各位同学能根据我刚才这个过程,把这接口能给他准确快速的开发出来。也就是我们的。这个接口。我把这个啊给各位先接过来。所以现在咱们现在就完成了校查询带分译接口,主要各位记住里面的过程,包括request的body的使用。然后这个完成之后,然后后面还有几个接口,包括添加医院设置,根据ID获取修改,包括这个批量删除,那咱们马上进行实现。
我来说两句