00:00
好,那我们下面咱们就来写一下my be的分页插件,该如何实现分页功能啊,好,那首先呢,分页功能是针对于我们的查询功能来说的,对吧?所以说咱们在这来调用一个方法,就select by example来查询所有数据,然后呢,我们要想查询所有数据,那没有条件,那查询的就是所有数据呗,对不对?好,我们在这儿咱们所获取的数据,大家想想是不是应该还是我们当前这张表中的所有数据呢?对不对?来,大家看好,我们来一个执行。大家看一下,查询出来的就是我们所有的数据,然后但是我们现在要想来实现分页,咱们怎么来实现非常简单,大家只需要在我们查询功能之前来开启分页功能,大家来看一下怎么来实现呢?看好在这儿呢,有一个类叫做page help啊,然后其中有个方法叫start page,然后start page中有两个参数,第一个参数就是page number,这不就是我们刚才所说的当前页的页码吗?对吧?然后还有一个叫做page集size,是我们当前每页显示的数据,每页显示的条数对不对?所以说大家来看,那这个时候啊,我们就可以直接在这里边去写了,比如说我们当前要访问的是第一页每页显示几条数据,每页显示四条数据,能看懂吧,每页显示四条数据,好,然后这样就可以了啊。
01:36
大家注意这样就可以了,这个时候我们在获取这个集合的时候,大家会发现它就会自动帮助我们来获取跟分页相关的一些内容,比如说我们现在咱们再来一个执行,大家来看啊,好,大家会发现,哎,现在咱们的这个SQ语句,它执行的还是一条吗?不是。这个S口语句是来查询这张表中的总记录数的,而这个S口语句大家来看一下,在这它是不是直接给我们加上了limit,那我们自己的S语句中有limit吗?比如说我们刚才没有这一句话的时候,咱们这里面有limit吗?有执行这个SQ语句吗?没有,所以说现在大家看一下,这个时候我们再去获得数据的时候,获取的是不是就是咱们的前四条数据了,对不对?因为我们访问的是第一页,那如果我访问的是第二页的话,我们再来一个执行,大家来看啊。
02:33
好,获取的是不是就是我们的第二页的数据了呀,对吧,就这么简单。就这么简单啊,所以说我们要想来实现分页功能对吧?使用啊用然后咱们的这个my be的分页插件,然后来实现分页功能对吧?它的步骤第一个步骤大家注意啊,然后需要在查询功能之前,然后来开启分页,怎么来开启分页来使用的是我们的page help点达的配方法,大家注意啊,然后这里面咱们来写的是一个int类型的page number,然后这个地方我们来写的是一个int类型的page size。
03:23
这个大家注意,当然这个方法呢,是有返回值的,我们说了,你要想来实现分页功能很简单,关键是咱们要来获取跟分页相关的数据,就比如说这个方法的返回值啊,就是一个配给对象。就是一个配给对象,那我们在这,咱们可以把咱们的配给对象来输出,大家看一下啊,So,直接把配给,然后输出大家看好来一个直行。好,大家看一下在这咱们所获得的数据啊,我CTRLC复制一下,然后咱们把它给复制到我们当前的笔记里面,大家来看啊,行,大家看这里面的数据还是挺多的,对不对?比如说这个count等于true page number等于二是我们当前页的页码,然后page size等于四,每页显示的条数,Start row从第几行开始,N row到第几行结束,Total一共多少条数据?PAGES1共有多少页?
04:24
OK吧?然后这个就是我们当前。咱们的分页之后的数据对吧,EID等于五。Ead等于九,Ead等于十,还有EA等于11。大家看,这不就是跟分页相关的数据嘛,对不对,但是可能有的同学感觉这里面的数据不是很多啊,当然呢,看大家的需求,如果大家需要来获取的数据就在我们当前的配给对象中,那我们完全可以直接来获取这个配给对象,比如说你只需要获取总记录数,还有咱们的总页数,那大家就可以直接获取配置,而如果大家想获取的数据更多一些的话,大家来看一下啊,我们在这儿还有一种方式,大家看好了来。
05:11
我把这个东西啊,咱们就不获取了啊,或者说呢,咱们把它给注释掉,先复制一下,然后把我们的这一句话给注释掉,然后我们在这儿需不需要来获取它呢?不需要,大家看好了,咱们在这儿还有一种方式啊,是我们在查询功能之后,用我们的配给音符来获取跟分页相关的所有的数据,它的泛型呢,其实就是我们当前查询之后的数据叫做emp,好然后咱们比如说就叫配接吧,行吧,然后下面呢,谬一个配接银凤,配接银凤好,然后它的构造器里面大家看一下,可以没有参数,也可以有一个,也可以有两个,对吧,比如说咱们看有两个的这个参数啊,首先第一个参数,咱们需要把我们分页之后的数据给传进来,其实也就是list。
06:07
能看懂吧,然后第二个叫做什么叫做navigate pages,什么意s int类型的navigate pages指的是我们当前逻辑分页导航分页的页码数,也就是我们刚才所说的对吧?一个页面中,咱们这是首页,这是上一页,这是下一页,这是末页,这中间咱们是不是要来显示几个页码呀,对不对?比如说咱们当前访问的是第五页,然后咱们就要从它减二开始,三四到加二结束,六七,但是呢,如果你访问的只是第一页和第二页的话,那咱们不能减二开始到加二结束,所以说这个时候咱们访问的就是固定的12345。还有咱们访问最后两页的时候,你比如说我一共就十页,对不对,对吧,然后这个时候大家来想,你还能减二开始到加二结束吗?这个大家能听懂吧。
07:03
就是我们在这需要把咱们的一些导航分页给展示出来,而我们的导航分页一般情况下就是以当前页显示在正中间,以它减二开始到它加二结束显示这五个页码,知道吧,好,然后呢,但是咱们也有特殊的情况,也就是说我们当前访问第一页和第二页的时候,那你肯定不能减二开始到加二减数呀,一减二是负一,有负一页吗?没有,有零吗?没有,那二肯定也不行,二减二等于零,有零页吗?没有,还有如果我们总共就十页,那你在访问最后两页的时候,能减二开始加二结束吗?也不行。所以说当我们访问前两页的时候,这里面的导航分页的页码是固定的,就是12345,而如果我们访问最后两页的话,它的这个页码也是固定的,就是六七八九十。这个大家注意啊,行,那这个问题大家明白了就行,然后下面呢,那我们当前咱们的这个参数到底是什么意思啊,来设置导航分页的页码数,就是我们刚才所说的展示五个导航分页,当然你可以展示三个,你也可以来展示五个,你也可以来展示七个,但是我不建议大家写偶数,你写偶数你是怎么展示的,左边展示俩,右边展示仨。
08:29
对不对,所以说这个东西一般都是一个基数啊,这个大家注意行,下面呢,我们再来看这个数据,大家注意,这个数据里面就有我们当前所需要的所有的相关的内容,OK,来,我们再来一个执行,大家看啊。行,大家看一下这个数据呢,我已经给大家复制出来了啊,就在我们当前咱们的这一个对吧,笔记里面,比如说在这大家来看,首先呢,或者说我把它给复制一下,咱们来看我们当前咱们所获得的数据啊来。
09:07
好,这里面的数据呢,非常非常的多,然后我给大家来换一下,行,大家看啊,然后咱们再来找到咱们的这个地方啊,然后再。找到这大家看啊,就到这就可以,首先这里面的这个list大家看好了啊,熟悉不熟悉是不是跟我们当前咱刚才咱们所获得的那个配置对象是不是一样的呀,所以说这里面的list其实就是我们刚才所获得的配置。知道吧,所以说这个数据咱们就不看了,我们来看一下除它以外的一些数据都有谁啊?首先当前页的页码kg size,每页显示的条数size表示当前页的真实长度,也就是当前页所显示的数据的真实的数量,因为我们每页要显示的数据量是几?是几条啊,是四条,但是呢,咱们在最后一页的时候不一定就能显示四条,比如说最后一页只有两条,那在这显示的就是我们当前页所展示的真实的条数start肉从第几行开始,N的肉到第几行结束,Total等于12总条数pages总页数PR1PAGE叫previous page表示的是它的上一页,Next page表示的是它的下一页,然后is first page是否是第一页,是否是最后一页,然后呢,是否有上一页,然后是否有下。
10:37
大一,然后还有在这个地方叫navigate pages,这就是我们刚才所设置的五,也就是在这个地方咱们所设置的五,OK吧,然后呢,大家看好了,我们设置了五之后,它就可以在底层进行运算,然后计算出我们当前咱们的导航分页,大家听好了啊,计算出我们当前咱们的导航分页的一个页码是123,为啥是123,总共就三页。
11:07
是不是总共就三页啊,然后咱们的导航分页从第几页开始,第一页开始到第几页结束,第三页结束。OK吧,比如我现在在这里面去添加一些测试数据,大家来看啊,咱不用添加的那么详细,咱们就直接给他一个员工姓名就行啊,多添加一些,然后咱们现在就能够看到这个数据的结果啊,行啊。来,下面大家看好我,现在我再来一个执行。OK,大家看一下咱们数据呢,就已经获取到了,来CTRLC,然后呢,再把它给放到咱们的这个地方,对吧?然后这里面咱们说的这个list,咱们是不是就不需要去看了,对不对,然后咱们把它给它干掉。OK啊。行,大家来看一下总共多少页,总共13页对不对,一共多少条数据,50条数据,然后下面的话,大家再来看我们当前咱们的导航分页是不是就变成了12345了,那如果我现在我把我当前要访问的页码给改一下,咱们来访问第几页,第六页,因为咱们现在一共13页嘛,那这个时候咱们的导航分页就会以减二开始,也就是四开始到加二结束,也就是845678。
12:28
哎,这个大家注意啊,行,那咱们就来测试一下吧,来咱们现在来一个执行。好,咱们把这个数据呢,然后CTRLC,然后来复制一下,大家来看,跟我们说的一样不一样一样45678。没问题吧,所以说大家想,如果我们现在咱们需要在页面中,然后来设置相关的超链接了,那我们是不是就可以把咱们的这个配给音符,把它给放在预对象中,然后在页面中进行访问,对吧?那首页和上页什么时候需要展示,当我们当前访问的不是第一页的时候,咱们才需要访问。
13:08
对不对。换句话来说,也就是说当我们有上一页的时候,咱们是不是才需要来显示首页和上一页,因为你本身就是那有上一页,那不就说明他们不是第一页吗?第一页还有上一页吗?没有了,那没有上一页的话,也就是第一页的话,咱们还需要来展示首页和上一页吗?不需要,那咱们只要拿着它进行判断,或者说拿着它判断是不是也行啊,对不对,是不是第一页不是第一页的时候才需要展示首页和上一页,那如果说我们要来展示下一页和末页,什么时候需要展示,什么时候不需要展示,如果没有下一页的,咱们还需要展示末页和下一页吗?不需要,所以说咱们只要拿着它进行判断,或者说拿着它进行判断是不是就可以啊?是不是,如果我们要在中间展示导航分页怎么写啊,把这个数组来进行循环,然后呢,循环里面,然后咱们来写一个超链接,让超链接里面来展示咱们当前的这一个页码,然后我点击这个超链接页码上,超链接上显示的是谁,咱们就让它跳转到第几页,是不是就可以,对不对?
14:23
所以说大家注意,这个就是咱们的分页插件,非常非常的方便。咱们只需要把分页插件配置完,在查询功能之前开启分页,在查询功能之后来获取分页相关的数据就可以了,OK吧,哎,这个大家注意啊,行,所以说我们在这第一步,咱们需要在查询工作之前开启分页,然后第二个步骤是不是应该是在咱们查询功能之后,然后来获取分页相关信息。OK,把这一句话,然后咱们复制过来啊,行,然后这里面大家注意咱们的第一个参数。
15:07
这里面这个五是什么意思,这个list,然后来表示来表示对吧,然后分页数据,然后咱们的五,然后这个大家注意表示的是谁,然后来表示当前导航分页的个数啊数量好。行。哎,大家注意,这就是我们当前咱们的一个分页插件,非常的方便啊,那希望大家呢,这个一定要在我们,我们现在既然学习了买be,咱们学习了分页插件,大家就一定要把这个功能呢,好好的熟悉一下,因为这个功能咱们以后一定是要结合着咱们的SSM框架在页面中,然后来实现咱们的分页功能的啊。好OK,那这个就是咱们的分页插件啊。
我来说两句