00:00
好,各位同学,基于前面的一些训练呢,我们接下来开始呢,写教师管理这一个模块啊,那么在教师管理这个模块呢,我们看这个页面结构啊,还有它管理的信息,那基本上呢,跟前面的一些管理呢,它的逻辑基本是一样的,所以咱们这块呢,还是一次性的,呃,把这个所有的业务呢,一块给它实现掉啊来咱们先看一看它请求的ul,还有呢,前后台交互的数据是什么?首先我们来进入这个界面的时候,把这个点打开F121点教师关理,他立刻向后台发送了一个请求,这块应该叫做哎,Local host9002,看一看它什么一个三,这是个什么玩意,点开它,它其实是立刻以get的方式请求了这个链接,嗯,来,拿过来啊,把这个拿过来,来给它前面这个不重要啊,重这个是从这开始重要他这C复制一下,嗯,到咱们这个项目之中提示这一块,第一个它这个get的方式请求,这是查询的啊,以get的方式请求了啊,请求了这个ul啊呃,这。
01:00
这个是明显明显它就是一个分页查询,同时呢,这个分页查询跟谁的业务是一致的呢?跟这个搜索业务是一致的,那如果咱们在这块选示个一年一班啊教师姓名来一个假设带小字的是吧,我们在一点搜索。看一看它消耗的提交这个URL的后面就是多两个参数啊,多了这么个玩意是吧,我这个怎么诶给它改成这样啊。来,给它拿过来。CTRLC复制一下。哎,这就是分页带条件来进行查询,那么我们看一看它响应的信息是什么啊,它想应的信息呢,明显看这个基本结构还是一个result对象,Code message data data里面放的是分页的一些信息是吧?哎,所以想要回去的也是一个result对象,那么这是呃,分页带条件进行查询,然后咱们再来看啊接下来下一个啊,就是新增,呃,新增和修改,新增和修改呢,它应该走的是同一个叫做啊,Save or update是吧,咱们来添加啊,那我们测试一下这个添加,测试一下这个添加啊呃,添加班级,针对一年一班再添加一个这个呃,老师啊性名叫做小白。
02:08
小白啊,性别男,然后这个工号这块,工号这块呢,我们看看它对应数据库的是哪一列呢?是这个,哎,Teacher里边的这一列啊,就是这个to这一列,而这个to这一列呢,并不是交给数据库去维护的,是我们自己手动进行处理的,这个ID这一列呢,是是这个数据库进行自动维护的啊,这个自动递增的,呃,这个我们在这块来右击设计一下表也可以看到啊,你看这一列是主键,同时它它是自动递增的,但是你看t no这一列它就不是自动递增的,对吧?嗯,所以而且它还是一个work差类型的,所以这个还是要交给咱们自己去维护的,目前咱们看一下数据库里边数据的这个编号到了108,哎,那么好,那咱们在后边的话就编一个109是吧,嗯,密码写一下密码吧,密码来一个123456,确认密码123456,嗯,邮箱这个123来边叫做小白小白艾特艾特硅谷点com电话。
03:05
13812345678,住址北京,然后后面还有啊,后面还有一个这个头像啊,我们随便选择一个头像一点打开,然后呢,这个头像已经上传上去了,但是这这条数据呢,还没有真正保存进去是吧?所以这个先给它清掉,清掉之后呢,再一点确定看一看啊,它向后端后向后端请求的资源是,嗯,这个save or update teacher嗯,是这个东西,而且他是一个post请求啊,那如果是一个post请求的话呢,他提交的数据。来啊。下面这个。这是一个POS请求,请求这个资源啊,诶这块直接呢,这这就不重要啊。嗯,然后请求的数据是啥呢?这个数据数据我们发现它向后端发送的数据在这里可以看到。是整个的一个teacher对象啊teacher对象你看这不就是teacher这个表格里面的一些属性嘛,对不对,哎,所以呢,咱们这块呢,进行一个这个,呃,后端直接存就可以了,他把这个PASSWORD2也给传过去了,其实啊,这个玩意,这个玩意是不用传的,你这个是前端的校验用的,那咱们直接那在后端怎么接收这些信息呢?就可以用一个teacher对象来进行接触就可以了,嗯,数据其实就是一个teacher啊。
04:24
你说一下啊,上面这个也有数据,上面这个数据是啥呢?他俩是吧。请求请求数据啊,然后上面这个说一下,把它响应的,响应的是result,加加里边的这个data啥的data data的应该是一个分页的一个信息啊等各分页,然后这个呢,下面这个啊,那我们看一看它响应的是什么,嗯,响应的其实就是就是一个result啊,然后呢,嗯,来啊里面的data呢,等于now。Su Su result,然后它这个data它是等于一个not,但是呢,它应该是一个OK的一个状态哈,好,那你看这个呢,叫做save or update,也就是说增加的时候用它修改的话呢,其实也是用它,那修改的时候呢,点的是这个逻辑是吧,这个逻辑跟跟咱们之前操作也是一样的,你看我点修改它当我一点确定的时候,你看一看修改走的也是save or update,但是在修改的时候呢,你看一看它请求的数据就会多一个ID啊,多一个ID,但增加的时候呢,是没有这个ID的,所以后端呢,咱们就可以在这块来进行判断了。
05:33
你看呃,如果是ID有值的话,那么它就是一个修改,如果ID没有值,它就是一个新增,那这个也是咱们在后面要做的一个事情,这是要进行一个判断,然后再进行判断的时候呢,它涉及到一个密码的问题啊,涉及到一个密码问题,这个如果这个密码呢,你要是不进行加密的话,来咱们看一看刚才新增的两个teacher,您看他这个密码啊,还是这个德行呢,所以这个是需要进行一个处理的啊,咱们要进行一个编码才行啊。嗯,好,还有一个是这个删除,呃删除这个业务逻辑呢,和这个这个删除和这个删除批量删除,其实一个你看我们把这给它,把这两个给它勾选上啊,勾选上之后呢,嗯,然后我们在这个,呃这个先给他清掉吧,一点批量删除,呃,确定,看一看后台就请求了一个delete的提示是吧,看看他提交的数据是一个啥呢?是一个Jason的一个数组,嗯,请求的这个路径是吧?它是一个delete的请求。
06:31
这六个请求资源请求是他,然后提交过来的数据是啥呢。嗯,这是请求的数据啊,请诉请求下面这个啊,它也是嗯请求的这个数据,请求数据是一个杰son的一个这个数度速度啊,它这个格式应该是这样的啊一呀二呀三啊这些玩意是吧?然后呢,嗯,看一看它响应的数据是什么,嗯,响应的数据你看这也是一个result对象,然后呢,应该是一个data呢,没有数据,但是它应该是一个成功的是吧?来响应响应一个re,嗯,UT result,然后这个data呢,它也是等于一个not,哎,但是它应该是一个OK的一个响应。
07:14
OK下好,这是咱们接下来要在这个提里面呢实现的事情,那么接下来咱们就把这个一个一个的方法呢给它啊实现呀,嗯,第一个呃,这是添加和呃,这不是,这是查询所有教师信息。啊,而且是分页啊,带条件的来一个at,嗯,API option,把这个先给它写上吧,嗯,API option这个方法是获分页,分页获取教师信息,然后呢,嗯,带条件带搜索条件的,嗯,再来一个艾,这应该是一个get请求就来一个get get mapping,然后请求这个路径,请求路径这块写啥呢?你看上面这块已经有一个SMS teacher controller了啊,这个前面这段就已经有了,这段已经有的话呢,咱们直接写这个get提就OK了啊。
08:05
那个get提成后面呢,还要有这个这个战略符啊,这个分页信息的战略符是吧?来一个来一个缺线小框,这块是一个配置配置嗯,No啊,然后这块是一个配置配置site好就是它了,再来一个呃,Public返回值为result啊,起个名,这个名叫啥呢?Get t t teachers吧,跟那个一样子的了。Pictures,这个也好记一点是吧,在这边都接触哪些参数,接入的参数有啊,第一个就是它这个配置no和配置size是吧?那这个配置no和配置size怎么写呢?At API API per,介绍一下这个参数,嗯,这个参数呢,叫做啊,叫做分页,叫什么页码数页码什么,再来一个at pass variable,嗯,他把这个配置size拿出来,配置no拿出来啊,这块来一个integer的一个配置no。
09:09
哎,嗯,In,这个配置配置no啊,这就搞定了,这是第一个参数,嗯,光有第一个参数还是不够的啊,然后呢,再来一个第二个参数,第二个参数应该是啥呢?这个是页大小,来页大小啊,再来一个配置size,这也是一个配size。那好,选它之后呢,第三个参数是一个teacher啊T啊teacher teacher这个teacher是来干嘛的呢?是用来封装你这个查询条件的,一个是name和一个是class name,那应该都是,哎,Teacher属性里面两个值吧,来看一看啊,点进去你看一个是name,一个是class name正好放到它这个两个属性上就可以了,所以这块呢,咱们直接用一个teacher参数来进行接收,哎,就OK了啊,那好,这个参数呢,咱们准备好了,准备好之后下一步干嘛呢?下一步就是里面的运算呗,里面运算怎么算呢?首先呢,封装一个,呃,分页的一个对象啊,叫做配置对象。
10:02
嗯,里面呢,装的这个数据是teacher,然后呢,这个配置per,这是分页的一些参数,等于new一个配置对象,里面放上配置,呃,配置no和配science,诶拿到之后呢,接下来啊,就是用这个teacher service,这个teacher service咱没有,所以咱们在上面得注入一下这个teacher service来private teacher service teacher service来at autowa一下,在这用这个teacher service。第二一个方法叫做呃,叫做呃,Get get teacher。Teachers by啥呢?BY这个OPR,哎,这是分页带条件的一个方法是吧,然后你把这个什么呢?把这个配置per这对象给它传过去,同时把上面这个teacher对象的也给它传过去,因为这个提示里面它是哎有这个参数的嘛,对不对,然后让他给咱们返回一个I配置一对象,I配置一对象。
11:03
那里面放的是teacher这个配置吧,哎,等于它,哎,那它之后呢,这个接下来就响应数据呗,Return啊,Result result,哎,点OKOK,然后里面放的数据就是这个,哎,配置信息就可以了,哎,这就是,呃,我们后面这个分页的条件查询啊,就搞定了,那搞定之后呢,这个里面咋写呢?是吧,这个这个这个里面的东西呢,咱们相信现在写起来应该不是什么困难的事啊,然后到它的实现类里面,再给他增加一个实现的一个方法,Teacher service,再增加一个方法implement method OK。好了啊,呃,那接下来这是带分页进行一个查询,那这里边代码应该怎么写呢?首先应该准备一个query wrapper,就是代表查询条件query wrapper query rapper啊,然后呢,这个query wrapper等于new一个query rapper,然后接来就往里拼条件呗,如果这个teacher里边的内属性不为空字符串啊,也不为闹,那么咱们就在这里边拼成一个name like什么什么对吧啊,或者是班级名字等于等么什等于什么什么,或者是名字like什么什么是吧,先判断if if,来一个string us there is empty,那判断teacher there get name,这是名字,如果说名字不会空,那么咱们就在这个query里面给它拼成一个like like啥呀?嗯,这个数据库里边name这一列,Name这一列like哪个值like,我从这个teacher身上去取出这个,哎,Name这个值改成内这个值,这是第个条件啊。
12:32
嗯,好,然后再来看啊,来看还有谁呢?还有就是if if,这个string a不对啊,如果是空的往上拼不对啊,这块少个叹号,如果是不为空是好再看这块,如果是不为空,String UUS there is empty,找这个teacher.get class name,就是获取他的班级名字啊,如果班级名字不为空,则用这个quite rap再个拼个条件,嗯,平时该这是个等于条件吧啊就是班级名字等于什么什么是吧,EQ当这个class内数据库里面这个class c啊,注意前面写的是数据库名啊,数据库里面字段名啊,那么这块写成一个嗯,Teacher,哎,点get class name好这么写就可以了,如果说名字班级名字不会空,那我在找的时候呢,就拼成一个哎,这个以class name啊作为这作为这个查询一个条件啊,但这个是等值查询就可以了,不用上面做这种like的模糊查询啊,最后呢,我们才可以拼上一点这个这个。
13:32
顺序的问题啊,例如我们来这个qua work点来一个order order by降序吧,根据来降序呢,根据这个ID来降序吧,啊,跟着ID来降序啊,然后最后return啥呢?Return这个嗯,Base,哎呀,其实是在这句吧base map点有一个select page,这里边传啥呢?首先要传一个这个配置per啊,它的这个分页信息第几页A大小,然后再传一下这个qua workper,它这个分页查询后面的这些外在条件啥的,它要给咱们返回一个配置对象,那这个配对象其实里面装的就是一些提成嘛,对不对,所以这个泛型呢,其实写到不写到也无所谓啊,写上吧,哎,最后呢,把这个配置对象进行一个向上返回就可以了啊,就可以了啊好,那么这个分页带条件查询这件事就搞定了,那回头再看来啊,回头再往下看,还有这个呢,嗯,这个是啥呀,更新或者是哎这个修改啊,这个教师信息。
14:27
那来啊,在这一开始写吧,嗯,先介绍一下at API option。来形他形他之后呢,来我们测试一下这个,嗯,添加就是介绍一下叫做添加或者是修改教师信息啊添加或者哎修改修改教师信息,他的请求运输路径艾特,这是一个post请求post啊post mapping。它对应的映射路径,映射路径斜线,然后呢,应该是前面这边已经有了啊,Save or update teacher就用它就可以了,然后写成一个方法,返回值是一个result。
15:08
等下起个名叫做还叫他吧,Save or update teacher那这里边应该用什么参数来进行接收呢?应该用一个teacher来进行接收,来提来进行接收啊,同时呢,这个东西它是一个呃,请求体中的一个介层对象怎么写这了是吧,应该写到括号里边去了。在这它是杰森请求,它是这个请求里边以杰森字符串的形式给咱们发送的,所以前面加上一个at request body,同时呢,再给它加上一个这个swaer的它相关的一些简介文档简介,艾特API,呃,Perel,嗯,这是什么呢?这是要这是一个要修改的,要要保存嗯或者呃修改的什么修改的Jason,嗯,Jason,嗯格式的这个呃提示对象,当然这个呢,简介啊这个嗯写就可以了,接下来就进行增加或者是这个修改呗,那调这个teacher,诶service里边有一个叫做嗯,Save save or update,你看它直接就有,你把这个teacher呢给他扔进来就可以了,哎,他直接给咱们进行新增或者修改了,那他这个save or update,它默认的逻辑呢,就是根据主键来进行新增或者修改的,那这个方法其实怎是怎么知道你这个玩意到底是谁是主键呢,你这不有个注解嘛,对不对。
16:27
哎,是吧,ID type是吧,而且是auto的是吧?哎,好啊,所以跟他来进行判断,那判断之后呢,接下来直接return信息就可以了,来一个return一个什么return一个result,然后点OK,那不需要往这个date里面放任何参数,直接result OK就完事了啊。所以这是一个呃这个呃,添加或者修改教师信息,那很快就搞定了,搞定之后还有最后一个小功能,就是删除和批量删除,嗯,教师信息还是介绍一个艾特API API option。啊,删除单个啊或或多个教师信息,诶信息啊,哎,等会咱们忘上面还忘了一个步重要的操作啊这块你这个save or update提的时候应该做这样一个判断,哎,如果是新增的话,新增那么要对密码进行加密,进行加密,嗯,为啥这样的,嗯,原因就是咱们在页面上一点击新增的时候吧,它这个我输的这个密码,它是一个铭文密码,这个铭文密码啊,传到后台的时候呢,在这儿啊,它还是一个铭文呢,那你要不对这个密码进行新增的话呢,那肯定不不进行加密的话,存到数据库它就是一个铭文密码了,而什么时候要对它进行加密呢?就是如果是新增,那肯定要进行加密,如果是修改的话呢,它传过来的又是就是一个密文密码,所以修改的话呢,就不用这个进行加密处理,那我怎么判断它是一个新增还是修改呢?就从这个从这个teacher身上啊,Teacher身上去取什么点get他的这个ID。
17:54
如果这个ID啊,等于等于什么呀,等于等于闹了,嗯,或者是哎这个teacher.get ID啊,它这个ID啊,它等于等于零了,就说明它是一个啊新的数据,如果是一条新的数据,那么咱们就把这个teacher诶点set一下它这个password修改一下它这个密码啊,然后这个密码修改为什么呀,修改为teacher,原来这个password进行加密,怎么加密呢?用这个MD5。
18:20
嗯,MD,嗯五然后呢,点啊这个incry就可以了,给它进行加密,加密之后再保存进去,那这个存入数据库的这个teacher啊,它这个密码就是进行处理过的啊好,这一点加上啊,最后这个delete啊,来一个艾API API option介绍一下,这是删除单个啊或者多个教师信息,然啊这后来一个嗯,艾特,这是一个delete请求,Delete mapping啊里面写上这个路径显示叫delete teacher就可以了,来CTRLC拿过来CTRLV往这一粘是吧,再来一个public,嗯,返回直返回结果是result,呃,起个放名就叫delete提了啊然后接收数据的时候用啥来接收呢?它这个传过来ID,它是以一个呃这种形式来进行传过来的,那咱们的后台就可以用一个list集合来进行接收,里面放的是一个integer,哎嗯,Integer,它就叫I。
19:20
DS吧,Ids啊,然后呢,它是以这个杰森这个请求体的形式发过来的,所以这块要艾特来一个at request a body,然后呢,再加上这个跟swaer相关的艾API per这样的一个参数,一个介绍啊,它是要删除的,介绍一下。这是要删除的,删除的啊,教师信息的这个信息ID,嗯的啊,Jason集合好就搞定了哈,搞定之后里面怎么删呢?非常简单,用这个teacher service点看一看有没有这个remove呗,哎,有,有remove by ids,然后把这个ID呢,再给它传过去就可以了,他就会给咱们进行删除,那删完之后呢,Return一个result.ok这就可以了,那么整个的teacher相关的业务逻辑的增删改查咱们就搞定了。嗯,好使吗?来重新这个启动一下,测试一下,来重新启动。
20:17
启动之后呢,咱们这个是这个是写好的项目啊,这个嗯,智慧校园9001,这个是咱们自己这个新自己这个目前写所写的这个项目哈,看看后台已经启动了,启动之后呢,来呃,重新的进入这个系统一。进来之后呢,到这个教室管理一进来,你看教室信息呢,就出来了,这块怎么有一个加载失败啊,原因就是这个图片呢,呃,这个他还没有没有图片没关系啊,这个其实可以修改一下,顺便给他修改一下吧,把这图片给他换了是吧?来换成这个来确定,那你看这图片不就好使吧,你看上来就把这个修改了给你搞定了啊呃,秀秀秀秀秀秀B。嗯,然后呢,改成改成咱随便改点信息啊,这个改成一个10109啊,艾特1234这个。
21:01
还有个四啊,海淀海淀昌平好了,保存一下,你看这些信息呢,应该就变了哈,变了之后呢,来这个查询的已经肯定查到了啊,我搜一下一年一班的来一搜索,你看这个没问题是吧,然后批量删除,批量删除这块呢,我给它重置一下,我把这两个给它一块删了,哎,批量删除呃,确定这是好使的,小赵也删了点这个,这不用不用沟通了,直接删,点这个一删呃确定哎这些删除这也好使了,所以整个的这一套教师管理应该就OK了,再添加一个吧,再添加一个这个班级一年一班的性别叫做秀秀那性别,性别是女,工号108108,应该是刚刚被删掉的是吧?来123456确认密码,123456邮箱,嗯,秀秀艾特。呃,硅谷点com电话啊13612345678,住址昌平,嗯,头像小回勾打开确定啊,你看这块就增加了一条,所以这个新增呢,也是没问题的,然后这个分页查询这些都没有问题啊好,那么教师管理啊这个模块呢,咱们就写完了。
我来说两句