00:00
好OK,那下面呢,我们就把咱们的列表功能呢,咱们来实现一下,首先呢,然后咱们这个先来写我们的控制层,或者说先把咱们的这个功能列表呢,然后先来设置一下啊。也就是说我们现在咱们要来查询,查询所有的员工信息,跟之前一样嘛,对不对,然后怎么写斜线em employlo对吧,Employee,然后咱们的请求方式是get。然后复制复制复制,然后这个是根据ID,根据ID然后来查询某个员工信息,对吧?啊查询员工信息,然后在这咱们是不是要传过来一个ID,然后请求方式呢,也是get,然后下面我们是不是需要来跳转到添加页面,跳转到添加页面好,其实跟我们之前咱们写的那个rest风格的这个增删改查是一样的,只不过就是我们之前咱们的那些数据是不是都是在哪啊,之前咱们的数据是不是都在我们的这个,呃,咱们的买杯提啊,咱们的这个嗯,DA里面咱们都是写死的,而现在呢,我们是需要通过咱们的买be然后来实现的,对不对,实现增删改查的功能的啊好,然后添加跳转到添加页面,那咱们就叫做to,然后斜线ADDDD就可以啊,然后get,请求,然后再往下,然后咱们添加员工信息,哎,添加员工信息。
01:29
然后这个的话,咱们的请求方式是post,好,然后再往下,这个是来修改员工信息对吧,然后这个请求方式应该是put,然后最后一个咱们的删除员工信息,然后在这咱们来传过去一个一对吧,然后请求方式应该是de delete啊行,OK,那我们下面咱们就把咱们的de一个功能来实现一下,就是查询所有的员工信息,咱们先把我们的控制器方法创建出来,返回值是一个string。
02:01
好,然后方法名的话,咱们就叫做get啊,叫做get emp啊,或者说就叫get o get all employee啊,行,然后下面大家来看,那我们现在咱们是不是要加上一个request mapping,然后他要来处理的请求的请求路径,然后是employee,然后他要来处理的请求的请求方式是不是应该是request method点。Get就可以啊好,然后下面大家来看怎么写啊,那我们在controller里面是不是要干什么,需要来访问咱们的employee service对象对不对,Employee service,那我们在这直接来完成自动装配就行,是不是啊好,然后这个位置的话,那我们是不是直接来调用employee service点,然后叫get or em,以get or employee就行啊,有没有参数,没有参数。它的返回值是什么?返回值直接就是一个list集合,然后它的泛型呢,应该是咱们的employee,对不对,然后就叫做list OK,好,这个大家注意,这是来查询咱们所有的员工信息,OK。
03:14
好,然后那我们第二个步骤,大家说我们要干啥,那你查询完之后,我们是不是要把它展示到页面中,所以说我们需要把它共享到预对象中,我们共享到预对象中的话,咱们的方式是不是有好多种,Model model map map model and view,那咱们在这咱们直接来使用model啊,好,然后是将咱们的员工信息。信息,然后再请求域中共享,然后是model,然后点model.addd attribute,这个叫做list,然后这个呢也是list啊好,然后咱们先把列表功能写出来,咱们再往里面去加我们当前咱们的一个什么功能呢?再往里面去加咱们的一个分页功能啊好,然后最后呢,我们是不是应该是跳转到哪个页面呢?比如说还叫做employ,以employe下划线类似的点HTML。
04:14
OK吧,然后怎么写啊,然后是return一个字符串,然后叫e employee_list似就行啊好,那我们在这咱们来这个在service中把这个方法来创建一下杠星星,然后是查询所有的员工信息,然后来找到我们当前咱们service的实现类来对方法进行重写,在这儿大家注意我们需要干什么。咱们在这个地方,我是不是需要直接来访问咱们的employee map,对吧?Employee map现在他能不能来完成自动装配呢?大家注意,没有任何问题,为什么?因为我们在spring的配置文件中,咱们最后加的这个标签大家看一下啊,叫做map con con scanner config。
05:03
然后它的作用就是把咱们所指定的包下面所有的map接口来创建它的代理实现类对象,并且交给IOC容器来管理。那所以说我们现在在咱们的service中,我们是不是完全可以来实现什么,来实现咱们的employee map的一个自动装配,对不对,好啊,行,然后来调用employee map里面咱们还是叫做get or employee OK,这样就可以啊。好,然后在咱们的这个map接口里面来创建这个方法。好,然后我们现在大家说我们要干什么,我们现在咱们用的是不是我们的买atc啊,那所以说我们map接口需要有实现类吗?不需要,我们只需要呢,根据我们map接口的方法,然后来在它的映射文件中去创建一个对应的circlel语句就行,对不对?好,Select的标签,然后它的ID要跟咱们的方法名一致,然后result type,咱们是不是直接设置为emlo就可以,对不对,为什么啊,刘的老师你没有设置类型别名,我设置了啊,在spring的配置文件中,在这个位置,咱们是不是把这个包下面所有的类是不是都设置了类型别名,对不对,对吧?好,这个大家看好啊,行,然后那我们就可以来写这个circlel语句了,Select的share from7_EP。
06:26
对吧?然后大家来看,你看我们当前咱们的这一个字段名叫EP_ID然后我们当前咱们的这一个类,咱们的类里面的属性名,然后是不是叫做e pip name,对吧?那这个时候字段名跟属性名不一致怎么办?但是它都是按照自己的规则,咱们的字段名用的是下划线,咱们的类名用的是驼峰,对不对?那所以呢,这个时候大家不用担心,然后我们在咱们的这个my be的核心配置文件中,咱们是不是来设置了一个全局配置,是将下划线映射为驼峰的,对不对?所以说啊,咱们只要有这个配置就可以啊,行,那我们现在把这个写完之后,然后我们是不是就可以来创建咱们当前的页面了,叫做employee_list来找到time list,然后咱们在这个地方啊,来创建一个这个。
07:21
页面对吧,然后这个页面呢,大家注意就叫employee list,然后这个咱们叫做员工,叫做员工列表啊,叫做员工列表,好,然后把我们当前咱们的CSS给引入进来,然后咱们用的是link标签,然后在这是TH冒号ref,然后it大括号,咱们的路径大家注意啊,来找到static,找到CSS,然后copy pass,把这个路径呢,咱们复制一下,然后咱们是不是把它给从static下面来访问就行啊好在这咱们来写一个table,然后里面是TR,然后里面是TH。
08:04
然后这个咱们就叫做员工列表。好,然后再往下TR,第二行TH啊,复制复制复制,然后TH的话,大家注意这里面咱们第一列要显示什么,比如说因为我们现在咱们来实现的是一个分页对吧,然后分页呢,比如说我们现在有30条数据,我们每一页咱们来显示四条。每页咱们现在呢,来显示四条数据,然后如果你要把ID给显示出来的话,大家想想现在所对应的问题是什么,你把ID给显示出来,那咱们第一页显示的ID是1234,第二页显示的是5678,第三页显示的是90 11 12,对不对,那这样看着其实也不行,所以说在这咱们直接来设置一个什么,大家注意叫做流水号,就是说我们来保证我们每一页咱们这个显示的这个第一列的数据都是从一开始的逐渐自增,OK吧,所以说这个大家可以叫做序号,或者说你叫做流水号,它都是可以的,知道吧,好,然后咱们的第二列,然后咱们叫做员工姓名,叫做员工姓名,然后第三列的话,是不是应该是年龄,然后第四列,然后是性别,然后第五列的话,是不是应该是邮箱对不对,然后再往下TH啊TH,然后最后一列是不是应该叫做操作OK吧。
09:27
大家看一共是六列,那在这咱们是不是就要合并列,合并几列,合并六列啊好,设置完了之后,下面呢,我们再来看,下面呢,我们是不是要把咱们当前集合中的每一个员工信息来显示为一条,那所以我们是不是就需要在TR标签里面来写TH冒号一起,然后来进行循环。对吧,然后怎么来进行循环呢?然后我们来设置em employlo以employee冒号,然后Dollar大括号list,我们现在是不是要把我们共享在请求域中的这一个集合,然后共享在我们当前请求域中的这个集合,然后来进行循环,对不对,对吧?好,然后呢,比如说我们的employee来表示的是我们集合中的每一个员工信息,那这样就行啊啊,然后再往下怎么写TD,然后在这是TH冒号,TH冒号text的。
10:22
好,但是现在问题来了,我该怎么获取这个流水号呢?大家想想这不是ID,因为ID的话,每页咱们显示的是不是应该是不一样的,那所以说我现在需要显示流水号,流水号怎么来获取呢?大家看啊,咱们可以在这个地方再设置一个叫做status的一个数据,这个status是我们当前循环的一个状态对象,然后在咱们的status中呢,到了大括号STTS,然后在status里面,它为我们提供的一些辅助的一些属性,比如说大家看count干啥的,然后就是来获取我们当前咱们循环的这个次数的第一次,第二次,第三次,然后这个是来判断是否为第一次循环,这个是来获取我们当前循环的,所以然后这个来判断我们这两个啊,是来判断我们当前循环的这个次数是否为偶数次或奇数次,然后这个来判断是否为最后最后一次循环,知道吧,这个是来判断集合,获取集合的长度的。
11:22
那既然我们现在要来获取的是流水号,那大家说我们直接用countt就行,直接从一开始第一次循环就是一,第二次就是二,能听懂吧,好,所以说在这咱们直接用count就行啊好,这是我们当前咱们的C班lef中为我们所提供的一个啥呀,提供的一个辅助对象,这个对象可以帮助我们来获取咱们当前循环的一些信息,OK吧,好,复制复制啊,算了啊,咱们先复制一个,然后这是employee,第二个是不是叫做EP内膜。复制复制,然后这个是A级,然后下面这个是G金。
12:01
好,然后这个地方呢,咱们设置成什么叫做email叫email,然后最后一个是不是应该是操作,那所以咱们在这应该是有两个超链接,一个超链接叫做删除,一个超链接叫做修改,OK啊行,这样就可以。好,那我们现在咱们这个就已经这个页列表页面呢,咱们也已经这个设置完了,那我们现在就可以访问一下了,咱们来找到咱们的target,然后大家看在这static已经有了,那我们就可以直接来重新部署,大家看啊。好,然后大家看一下,看在启动的过程中,它有没有报错啊。好对,然后咱们现在还没有一个访问的入口,对吧,那我们把index的HTML打开,咱们在这呢,来写个超链接,然后呢,写上TH冒号,然后在这咱们所访问的路径,大家注意就是em employee,这叫做employee OK吧,行,然后这个是用来干什么的,查询所有的员工信息,OK啊。
13:11
好,咱们在这再来重新部署一下啊,因为咱们刚才呢,你要是没有这个入口的话,那咱们这个路径大家是不是就得自己去拼了,对不对,好啊。行,OK,那我们现在把咱们的浏览器给打开,然后我们来访问首页刷新,大家看在这这是不是就是我们当前咱们所设置的这个访问首页的访问列表功能的这个链接超链接,然后现在我们来点击这个超链接,大家看啊。好,大家看一下,这就是我们从数据库查询出来的这30条数据嘛,大家看一下,第一个是三个A,剩下的全部都是一个A,对不对,对吧?行,然后这个就是我们当前的一个列表功能,大家看你看这个地方啊,它全部都是一二三四五六七八九十,然后呢,它都是从一开始,然后自增的,知道吧,然后就算我们现在咱们来访问的,就算你的ID它是不连的,比如说我们做的是增删改查,所以说我们的每一页。
14:13
然后咱们尽,咱们是不是可以去删除数据,比如说我把这里面。我把这里面的第三条给它删除掉了,然后删除掉之后,我们现在咱们在页面中展示的还是1234,因为现在它跟ID没关系,它是跟我们的循环有关系的,我们当前循环第一次循环就是一,第二次循环就是二,然后再次循环就是三,能听懂吧,这个大家注意啊,好,然后最后是我们的删除和修改功能,对不对,哎,行好,那这就是咱们的列表啊,列表做完之后呢,然后咱们来做一个这个分页功能,其实就是在我们当前咱们的,其实就是在我们当前咱们的列表功能上,然后来在列表的基础上来实现的这个分页啊,好OK。
我来说两句