00:00
好,马上开始,呃,这个进行年级管理功能的实现啊,第一个叫做查询年级信息,并且是分页的,而且是带条件的啊,带条件的啊,那接下来分析一下业务,首先一点击年级管理的时候,它进入的请求的controller是什么?把这个先清掉吧,我我重新跳一下再回来啊,跳一下再回来。在年机关这块一进来,它立刻发生了一次查询,这一次查询呢,所请求的这个地址啊,这个请求来消息头看这块啊叫做grade controller里面一个叫做get grades,然后带成了一个页码数和叶大小,而在这块呢,进行搜索的时候,假设这块放了一个三,诶,然后一点击搜索,它也是请求这个,嗯,Get grades来一个要一杠这个这个第几页和每页页大小,同时它都带了一个参数,嗯,这个参数是在哪带的呢?嗯,来看一看啊。请求这里面,诶在这呢,它读到了这样一个参数叫做grade name,那么也就是说后端的controltrler要接收这样几个数据,第一个是页码数,第二个是页大小,第三个是great name,而这个great name它有可能是no,哎,有可能是no,有可能是什么呢?有可能是这个有值的,有可能是没值的是吧?这样情况请坐方式是一个get的请求,好,那接下来咱就按这按照这个请求到great controller之中呢,进行一个这个编写哈,来把这个来看controltrl c复制一下。
01:19
CTRLC复制一下,复制完之后找到咱们这个项目的,嗯,Great controller,这里边已经加上一个SMS great controller了啊,看看这个路径是不是它啊。嗯,Local host前面这就不重要,不重要看这个SMS grade controller,嗯,是它吧,GR啊,Controller一样的啊,这个叫做grade get grades啊,一杠三后面还要带上这个great name,那接下来对着它就开始写呗。public想要的结果是什么呢?来看一看啊,他们现在可以看到,看看想要的结果是什么呢?也是一个code message data data里面放的是啥呢?Records就是这一类记录,这个记录里面你看来点开有什么几年级信息啊是吧?哎,就是就搜搜一个嘛,总共查多少个还要要呃,除了这个record里面还有什么属性呢?一共多少条?哎,这个每月多少啊,Current orders,呃,Hit count search count pages这些信息都要带上,而这些信息呢,怎么获得呢?诶,咱们后面有一个叫做I配置对象。
02:19
IP置对象,这个也是my best plus它的一个分页插件给咱们提供的一个对象,这个对象里边就有这些属性啊,就这些属性就不用咱们自己呢来去封装这些东西了啊,也就是说后端插出一个I配置啊,往这个一个对象里这个data属性上一放,然后呢进行转接算一发送就可以了啊,搞一搞啊,所以这块呢,返回的对象还返回的信息还是一个result。大家只要记住哈,在咱们这个项目中,只要是呃响应这个阶层信息呢,只要是异步交互的返回的信息都是result啊,然后呢,如果具体想要什么数据,就往这个result对象的get属性上放,这个做get GRS get grade参数这块怎么准备呢?是吧,准备这样一个参数来at这个这一个get请求get mapping里面对应的映射路径斜线写上这个get grade就可以了,对,但是呢,它这个是这块有个什么,这是一个带占位符的ul,那你就要把这个占位符和这个占位数解析成参数,那怎么解析呢?这样写来一个大括号,再来一个斜线大括号,这两个大括号里面写啥呢?写两个变量名吧,第一个叫做配置no吧,也就是页码数这块呢,第二叫做配置SI,这是页大小,这两个参数,这两个参数,哎可以直接用用这种战符的形式呢,给它,哎搞出来啊搞到那就写呗,怎么才能拿到这个参数呢?第一个是一个inter类型,叫做配置,呃,配置no。
03:40
嗯,配怎么把这个配置欧给它呢?加上这样一个注解叫做at past variable,然后里面指定,哎指定就叫做呃,它的一个呃Y流值,Y流值可以Y6可以省略不写,叫做配置no,那就可以了,这个名呃和它必须相同,代表这一段啊,经过它的解析放到这个变量上是吧,后面还有个配置size呀,对不对?再来一个at past variable,嗯,再来一个叫page,后面也是一个integer叫做page,好,这两个数据就拿到了,那后面这个grade name怎么拿呢?这个grade name它是以以这个参数获取的,以参数获取的话,这块咱们直接可以来一个string grade grade name就可以了。
04:25
这样也定很严密,哎,这就是啊年级名称,呃为了嗯这个上说直这个直接形容他也可以啊,如果说你感觉这个名字可能直这个名字只要跟他跟这个名字保持一致就行,那你可能说我担心啊,有可能不一致是吧,他这个找不到你也可以这会加上叫做at request per。Re request啊,Yes request para啊,代表我要获取请求中的参数,请求参数的参数叫啥呢?Grade grade g g de grade name grade,这个grade name这个参数获取完之后呢,放到这个参数,放到参数列表的这个变量上去啊,但是呢,这个名如果跟它保持一致,那你前面这个不写啊,也可以匹配到,所以这个咱就省略不写了,那你要保证这个great them来CTRLC来跟它保持一致就OK了。诶接下来干嘛呢?接下来开始哎,分页,呃,分页带条件查询。
05:19
查询就可以了,然后拿到查询结果进行信息息信进行反馈,什么返回一个返回一个re啊封封装一个result项,封装reut result对象并返回。这发挥return一个return一个result吧,咱们还是用result里面的一个,呃,快速过的一个方法,点一个什么呢?点一个OK吧,点一个OK里面放的信息是啥呢?先不放一会查完之后呢,再往这一放就OK了啊呃,分页在查询首先设置分页信息,那怎么设置分页信息呢?需要借助一个配置对象。这个配置对象里面放的是啥呢?有个泛型查的分页信息,里面查的是哪个表格,返回的是用哪个实体类进行封装呢?Gradeid用来用用用这个来来进行复装,那就写grade就可以了,Grade那来page置等于new一个什么呢?New一个page置这个配置项直接定就可以了,后面要放上什么呢?后面要把这个page置配置啊,Number还有什么呢?还有这个配置size,给它封装成一个配置对象,哎,放这之后呢,下一步是干嘛呢?
06:25
这是分页信息,分页信息准备好之后,接下来就要啊,通过服务层啊,通过通过服务层来进行查询,这个分页带条件查询这个功能在服务层完成啊,咱们在control这块呢,只是负责参数的接收啊,和这个参数的一相互传递,相互传递的问题啊,那这块就得用一个great service了,那怎么用great service呢?组合一个private great,嗯,Great service great service,来一个at autowa,诶,Autowa。Out位了啊,自动注入这个grade service之后,那就来一个grade service,咱们就要这一个方法,这个方法名字叫做get grade grade by PR,哎,这个方法名呢,倒挺奇怪的,不过没关系啊,无所谓啊,呃,Grade,那当然呢,这个方法目前还没有被创建,咱们先写这啊,写这之后呢,呃,把参数传过去,然后咱们再创建,再往后层去写啊,叫做get grade by o PR,诶,首先把这个配置对象给传过去,代表分页查询的信息就已经给它传过去了,还有分页查询条件呢,这块是还有个什么grade name呀,就是咱们模糊查询,要根据这个grade内来进行模糊查询,让他给咱们返回一个什么对象呢?叫做I配这个对象,哎,里面写成一个gde吧,哎,它就是一个叫做嗯,I置也行,叫什么名都无所谓啊,叫叫做呃配置RS吧,就是我们的这个分析结果,诶再把这个分析结果这个配置RS来配置RS再放到A。
07:57
给这个通过这个OK方法快速构建一个屡造对象并发回就OK了,那这个I配置里面都有啥呀,可以按住可点进去看一看,它这个源码长什么样啊,有什么呃,各种问题哦,各种各种数据啊,什么orders,诶反正属性有一堆啊,这个一会儿咱们什么size什么什么current这这些都有,一会咱们把这个这是一个接口啊,这个接口一会咱们把这个信息响应回来之后呢,咱在这个呃,Swaer上来进行看,或者是在这个呃浏览器这个F12上进行看啊这个这现在看这个源码可能会比较麻烦,这样的时间会比较长是吧?好,接下来实现这个叫做get grade by o PR来创建这个方法,创建方法之后呢,再到它的实现类中来给它实现一下。
08:37
来实现啊,这个方法里面该怎么写呢?哎,我还是要准备一个查询条件,来一个query vaer,嗯,Query vaper等于另一个queryper,另外这个qua upper之后这个泛型呢,不加吧,不加也没事啊,不加也可以啊,先判断一下床这个great name它它是不是会空,因为有可能呢,这个grade内幕不为空,如果不为空呢,就不拼接这个内幕这样的一个模糊查询的一个条件啊,怎么判断呢?嗯,这里面这样工具类叫做strings u啊,String us啊,有一个叫做判断为空的一个方法叫做a empty,哎,把这个呃,Great给它放进来,然后点if,如果说它不为空,那加上个叹号,如果不为空呢,就在这个query rap上拼成一个条件,拼成一个什么条件呢?
09:22
叫做点like,这是一个模糊匹配的条件,哪个字段like谁呀?呃,像什么呀,是吧,哪个字段呢?来看这,找到这个数据库这个表格看一看啊,找的是这个grade了,哪个要进行like呀,年级名要进行like,也就说这个name属性要like like啥呀,跟这个我传传过来一个参数进行个模糊匹配,我假设我传过来一个三,就是找这个name里面有什么呢?Name里面包含什么呀,包含三的,把这个grade name往这一放就可以了,如果说这个great name没空了,没空的话呢,这个条件就没往上拼,没往上拼之后呢,接下来啊,再来看,可以再可以往上拼一点信息哈,拼点什么信息呢?就是这个que upper还可以拼一些,呃,这个排序的一些信息,哎,例如看这,呃,你看咱们这个年级管理这块啊,把这个信息呃干掉,你搜索一下,你会发现它是按照ID进行道具排序的。
10:12
啊,然后呢,如果是I didd肯定是不能,呃,不能这个相同了啊呃,如果说遇见D相同的也不太合理,所以咱们这块可以添加一个根据ID来倒序排序,或者是你想根据年级名称来排也行,但是根据年级名称来排有点不太合适,为啥呢?这个年级名称中文,但中文未必是按照中文的1234来给你排的啊,所以咱们这块可以选择一个叫做哎,根据这个ID来进行升序或者降序排序一个操作,人家这个是降序啊,那咱们就引用降序吧,再来一个什么呢?Query,诶诶,不要跑啊,RY wher。点一个叫做order,嗯,Or order什么呢?Order by decc吧,嗯,这是一个降序,然后根据来降序呢,根据这个ID这个属性来进行降序,这是库,数据库表格里面ID这一列,那数据库表格ID这列是谁,就跟它根据它来降序查询,哎,这也是可以的啊。
11:04
好,那接下来就要进行查询了,Quary rapper呢,条件拼好了,拼好之后在这块啊,Return直接在这掉了啊,嗯,别在这掉了,调可能看不到那个返回值时啥啊,来base map调这样的一个方法叫做select page,哎,Select page这个方法呢,Select page这个方法也是由my be plus给咱们提供好的,那在这块需要传两个参数,第一个参数是啥呢?第一个参数就是你上面不是传过来一个配置对象吗?这个对象身上不是有第几页和一大小吗?你把这个配置对象又给它继续传过来,让它继续传过来啊。传过来之后呢,嗯,还要传一个什么,还要传一个查询条件,把这个que rapper给它传进来,OK了,它会给咱们返回一个也是一个配置对象,但是这个配置对象里边就包含了查询的所有信息了啊来这个叫配置一,为啥叫配置一呢?因为上面这也有一个配置对象是吧?那这个参数名可以可以给它改一改,假设这个叫做哎配置per吧,哎,这是查询的条件这块来一个哎配置per啊,然后这个就叫配置的了,配的了,哎,然后看,但是这个方法要求反复是个I配这样对象,诶诶,那你看点击它看一看它干嘛了,它实现了A配啊那正好吧,你看这边record有total,有size,有current,有orders,哎,你看这些属性,这些属性是不是正好浏览器前端这块要接收的这些数据的格式看一看,Records total size card orders hit hit,嗯,Hit count,设什么count,什么page,配置资源这些都有,哎,对吧,那正好用这个对象来进行返回啊,转成接层返回就可以了啊。
12:36
好,那么接着把这个配置继续往上返回,当然这块呢,可以加泛型啊,加上一个什么,加上一个grade,诶不加泛型也行啊,是这块也可以加泛型,哎,我这块也加上一个G。不加,其实也没事,也可以被识别,再把这个配置对象继续向上返回就OK了,那这个分页带条件的一个查询,诶,咱们在后台就已经实现好了,呃,D层基本上不需要做任何操作,因为此时呢,这个my best plus呢,给咱们提供的这个功能啊,基本上就包含了目前咱们项目中所需要的,哎,几乎的所有的功能啊,来重新发布一下。
13:19
重新发布完毕之后呢,到咱们这个9001这个里面来来回车请求一下,因为登录过应该不用再登录了哈,点击这个年级管理一进来,你看一看,诶咱们这个业务信息了啊,三年级五年级六年级诶这些都有,我想根据这个啊六来查来一个六,然后一点搜索啊,你看这些都有啊,这些都有啊,然后再来把这个删除一点搜索这些OK啊下一页这些OK,每页信息条数给它改成九条来,你看这都是OK的,这都没问题,因为这些什么这这个操作,这个操作,还有这块搜索这个操作,以及一刚进入这个页面查询所有信息这个操作,它请求的都是谁呢?来看着哈,来搜索一点击搜索,你看,哎是这个,嗯,Get grades啊,还来把这个来再给他改一下,改成每页九条,你看它走的也是get grades,只不过这回后面这个数字变成九了嘛,对不对,诶,然后刚一进进进入这个年级管理,你看这也是请求的谁呀,Get grade啊,就说这里面好多业务逻辑都是走着一个get grade来进行实现的,那这个分页带条件查询就搞定了。
我来说两句