00:00
好,那下面的呢,我们来看一下my be里面的最后一个内容,叫做分页插件,好,这个分页插件呢,它帮助我们来实现的是一个分页功能,那如果说对分页功能有了解的同学呀,然后应该都知道这个分页功能的话,咱们在写的时候是比较麻烦的啊,然后它涉及到两个方面,首先第一方面比较简单,就是我们要在SQL语句中来实现一个分页的一个功能,然后咱们需要在查询语句里面加上一个limit来实现分页。当然第二个功能比较麻烦就是什么呀,就是我们需要在页面中呢,来设置跟分页相关的一些超链接。比如说大家都见过的,比如说咱们的这个什么呀,首页上一页,还有末页,下一页,还有跳转到第几页,然后还有呢,就是咱们中间的一些导航分页,什么叫导航分页,就比如说呀,大家看好这是首页对吧,然后这是上一页,然后这是下一页,然后这是末页,或者说叫做尾页,那中间的话,咱们是不是可以将我们当前这个当前这一页。
01:05
它所相关的一些页码给展示出来,比如说我现在访问的是第五页,那这个时候呢,我们是不是就可以把它前面的两个页码,以及后边的两个页码都展示出来,比如说这显示一个34567OK吧,这中间这个就叫什么呀,就叫做导航分页,好然后呢,我们现在咱们有了分页插件之后,大家注意我们当前呢,咱们这个实现分页功能就变得非常的简单了。首先呢,咱们不需要在SQ语句中手动去加limit啊,然后咱们使用了分页插件之后,它是自动帮助我们实现分页功能的,还有呢,就是咱们的页面里面对吧?然后因为我们现在要在页面中来实现这些功能的话比较麻烦,这就比如说这个首页和上一页,然后这两个什么时候咱们才需要显示,是不是应该是当我们访问的不是第一页的时候,也就是说它有上一页的时候。
02:01
我们是不是才需要来展示首页和上页,然后这个下页和末页,我们是不是应该在当它有下一页的时候,咱们才需要展示这个下一页和末页,对不对?这样的,如果本身就是最后一页,它没有下一页,大家说那我们需要来展示这两个超链接吗?不需要啊,好,那中间这个咱们也要进行各种各样的判断啊,那所以说呢,咱们要想实现页面里面这个分页功能的话,非常的麻烦,因为我们需要来获取很多跟分页相关的一些数据,好但是咱们用了分页插件之后,它就把咱们当前所需要用到的数据全部都给我们封装好了,咱们只需要来获取相对应的对象,然后这个对象中封装的就是咱们所需要用到的一些数据啊好,那下面呢,那我们先把咱们的分页功能呢给大家分析一下,首先咱们从这个circleql语句的角度来说,我们要想来实现分页,那我们在这需要在SQL语句中加上这个limit。
03:02
加上limit的关键字,然后limit的后边是有两个数据,一个叫index,一个叫做page接size,大家注意,这是我们从SQL语句的角度来说,实现分页功能的一个一个方式啊,好,然后呢,这个dex它叫什么呢?大家注意,然后这个index,反正我是认为它叫什么,它叫这个,这是我给它起的一个名字,大家看一下啊,叫做当前页的其始索引啊,其始索引,然后下面这个page积size子,然后这个东西是什么?叫做每页显示的条数啊,叫做每页显示的条数,好,那我们现在呢,咱们的page积size子,一般情况下这个东西它都是固定的,比如说咱每页显示五条,每页显示十条,对这东西都是固定的,那关键是这个东西大家注意它不固定,它跟谁有关,它跟我们当前咱们所访问的页码有关,你比如说你访问的是第一页,那当前页的起始索引就是甲。
04:02
就是0OK吧,好,如果说你访问的是第五页,那它是不是就跟我们当前咱们的page积size有关,比如说你每页大家来看一下,咱们在这写一下啊,然后我们现在咱们还有一个数据叫做page number,这个东西也一定是我们提前要知道的,对吧?咱们一定是这个数据一定是从浏览器传过来的,浏览器传输到服务器一个请求,发送一个请求,告诉服务器我要来访问第几页的数据,对不对,这东西大家注意一定也是已知的啊,叫做当前页的页码。当前页的页码,OK。所以大家注意,对于我们当前咱们的一个分页功能来说,这两个是已知条件,那我们现在咱们是不是就要想办法把这个数据给获取到,也就是index这个数据对不对?那咱们怎么获取呢?你写几组数据,你你大家直接来看一下就行,比如说我们现在咱们要来访问的是第。
05:01
啊,比如说每页我们显示几条,每页我们,但现在咱们来显示四条,然后我们要来显示的是第几页的数据,第一页的数据,那这个时候大家说这个index应该等于几啊。啊,大家想想,我现在要展示的是第一页,比如说啊,咱们写全一些page size,如果等于四,然后我们当前咱们的page number,然后它是等于几的,等于一的。那这个时候咱们的index大家说它应该等于几啊,当前页的起始索引,你当前访问的是第一页,那咱们的第一页的第一条是不是应该就是谁,应该就是第几条第一条,那既然是第一条的话,那第一条它是从一开始,那它所对应的索引是不是应该就是零啊?能看懂吧,所以说这个时候大家看好它所对应的这个limit的写法就应该是LIMIT0,然后逗号四,这个大家注意啊,像下面呢,我们再往下看,那比如说我现在我还是一样的,我每页显示四条,然后我现在要来访问第几页,我要访问第三页,那大家说第三页,那这个东西咱们这个index应该等于几叫当前页的起始索引,你当前页,那第三页的话,我们是不是每页显示四条之后,我们第三页应该从第几条开始呀?
06:24
从第九条开始,因为他之前是不是已经放了,已经放了几条数据了,他的前两页已经放了八条数据了,所以说咱们的第三页应该是从第九条开始,那它所对应的索引应该就是八。OK吧,那大家想你说这八这东西,这是这是这这这个数据跟谁有关系啊,它其实不就是我们刚才说的,咱们前两页所放的数据的总和吗。对不对?咱们的前两页所放的数据的总和,也就是当前页之前所放的数据的总和,你比如说这应该这这个地方大家注意这应该是几,这应该是八,然后这个地方是四,那下面咱们再做一个例子,比如说我们现在咱们每页显示还是四条,我现在要来展示第第几页,大家注意第六页对吧?那大家看一下啊,这个时候我们在这,咱们应该这个index应该是几啊,你像显示的是第六页的数据,那我们之前的五页是不是已经放了20条了。
07:27
对不对,四五二十吗?然后那我们当前的第六页,它就应该是21~24条,也就是说从21条开始,那咱们的index大家说不应该是21减一,因为第几条和索引。第几条,然后是从一开始,索引是从零开始,所以说21对应的索引应该是20,这个大家能看懂吧,所以说这个index咱们要想把它算出来,大家说是不是有一定的规律啊,什么规律,是不是应该是拿着我们的当前页的页码减一乘以每页显示的条数,因为咱们刚才在这儿给大家分析的就是这个数据是谁,就是他之前的这些。
08:10
他之前的这些页数。所存放的所有的数据的总和,现在咱们访问的是第六页,那我们之前咱们访问的是不是已经已经有五页了,那五页已经这个存储了多少条,已经展示了多少条数据了,20条数据了,所以说这个就是20,所以这个index该怎么来获取,大家注意index有一个计算的公式,然后它应该是谁呀?应该是咱们的pag number减一,然后再乘以pag size。这个大家一定要看好啊,这个是它计算的公式,好,那当然呢,咱们说了这个分页呀,它难难不在这儿,它主要难难在哪呢?咱们这个厘米的后边这两个数据很其实很好获取啊,它主要难难在我们的页面中,因为咱们的页面里面,咱们是不是需要来设置什么,咱们是不是需要来设置各种超链接。
09:04
对吧,然后来方便用户来访问不同不同页数所对应的数据,你不可能说下面一个超链接都没有,对吧?然后你展示数据给用户展示的是一条第是第一页对吧?那你让用户怎么访问第二页,第三页呢?你怎么写下面写个提示,然后要想访问其他页的数据,请自己手动在地址栏里面拼接,那肯定不行,所以说咱们一定要把下面的一些超链接给展示出来,怎么展示呢?大家看好啊,比如说这个是首页。对吧,然后下面呢,我们再来看,然后咱们有首页,然后首页有了,咱们在这是不是应该来展示一个上一页,然后上一页有了之后,我们在这里面是不是需要来展示一个下一页,下一页然后下一页有了之后,咱们还要再来展示一个末页,或者说叫做尾页,它都行,而且在咱们的上一页首页上页和下页末页中间,咱们还需要去展示一些导航分页,比如说我随便写一下啊,23456。
10:05
对吧,然后我们当前访问第四页,那我们就要把它的它的前两页和后两页的这些页码呢给展示出来,这个叫什么叫导航分页,大家注意啊,这是我们在页面中实现的最终的一个效果,那所以大家想想这东西对吧,你要想把这个效果实现了,那我们。对吧?是不是得经过各种判断呀?首先大家看首页和上一页这个东西什么时候需要展示,如果你本来访问的就是第一页,那你有必要展示首页的超链接吗?你有必要再给他设置一个上页的超链接吗?你上页本来就第一页,你上页上页不就当前页减一吗?那一减一不就成零了吗?对不对?那有第零页吗?没有啊,这个大家注意好,再往下,那咱们所以说什么时候才需要展示这两个,当它有上页的时候,也就是说当它不是第一页的时候,能听懂吗?
11:02
这两个一样的道理,如果你本来就是最后一页,那大家说最后一页有下一页吗?没有,那咱们的末页的话,那是不是也是一样的,你本来就是最后一页,你还需要设置末页的这个超链接吗?不需要,所以说下一页跟末页什么时候需要展示,当我们访问的不是最后一页的时候,也就是说它有下一页的时候,咱们才需要展示,OK吧?好,那所以呢,大家看这两个,咱们要想判断很简单,你只需要来判断一下当前页码,它不等于一就可以,OK吧,简单啊,那这两个的话大家说。对不对,也挺简单的,判断他们是否为最后一页就行,那但是呢,大家想最后一页是第几页呀。啊,最后一页是第几页,我知道最后一页吗?不知道,这东西咱们得算你,你要把这个最后一页的页码给他算出来,因为最后一页这个末页就是就是最后一页嘛,那最后一页怎么算,你一共有多少页,那最后一页就是第几页,比如说你一共有八页,那最后一页就是几页啊,就是第八页。
12:08
OK吧,所以我们现在咱们就要把末页,你要想把这个效果给做出来的话,大家注意你要知道末页是第几页,那末页咱们怎么算呢?也就是总页数咱们怎么算呢?大家说它跟谁有关系,它跟我们当前的总记录数有关系,跟我们每页显示的条数有关,你比如说我现在有三十三十条数据,我每页显示四条,大家说你说一共有几页。四七二十八七点行不行不行,因为还有两条数据,所以说你得用我们当前咱们的一个,咱们还得有第。还得有第八页去存储我们剩下的这两条,OK吧,所以说这东西啊,该怎么来获取,我在这给大家写一下,然后这个count是什么意思,是咱们当前的总记录数,哎,这个东西咱们是可以从数据库里面直接查出来的,然后我们还要获取一个什么呢?叫toal,叫total page。
13:09
叫做总页数,哎,叫做总页数,那这个东西咱们又该怎么获取呢?大家注意,非常简单,Total偷配置怎么获取啊,Total偷配然后是等于我们当前的count,然后来除以谁的,然后来除以我们当前的page积S的,这个大家注意,但是它不对,为啥?因为咱们还要来判断它能不能整除的情况,如果说能整除,那我们当前的total偷配积它就等于它除它,但是如果说你的count,然后模上咱们的胚接S,如果说它啊不等于零,也就是说它整除不了,那这个时候我们还得有一页的数据,有一页,然后去来展示我们最后剩余的一些数据,知道吧,这个时候怎么做偷偷配齐,然后加等于一,加等于一,OK。
14:03
这个大家看好啊,然后所以说我们把total配获取出来之后,那咱们的末页跟下一页就可以做了,好,然后当然咱们这两个你能做了之后啊,并不代表中间的导航分页你就可以做,因为这导航分页也是需要进行判断的,怎么判断?首先大家想想我比如说我们现在咱们要来展示的导航分页是当前页减二开始到当前页加二结束,展示这五个导航分页。那大家想,如果你当前你的总页数都不够五个,你的总页数都不够五个,你只有四页,那你能展示五个页码吗?不能,所以说你现在有几个,你就得展示几个。好,然后还有一种情况,如果我们当前咱们访问的是前两页,你访问第二页,访问第一页的时候,大家说你能把这第一第二放在正中间吗?从减二开始到加二减数,我们不能吧。啊,如果你访问第一页,那减二它不就变成负10123吗。
15:05
如果你访问的是第一页,那它不就变成了零啊,变成了这个啊,如果你访问第二页的话,不就变成了。01234嘛,对不对,那有第零页有第负一页吗?没有,所以说如果我们就得判断,如果你当前页访问的是第一页和第二页的话,那我们当前这个导航分页的页码就只能展示12345。OK吧,从第三页开始,它刚好符合条件对吧,那三减二不是从第一开始,然后三加二到五结束嘛,12345对不对?好,那我们再往下,然后咱们还有这个这个,如果你访问的是最后两页,你访问最后两页大家说你能从减二开始到减二结束吗。对吧,这个时候你会发现你加二之后的这个页码是不是比咱们总页数还大,那所以说当你访问最后两页的时候,这个导航分页的页,导航分页的这个页码呀,它只能是最后五页OK吧,这样的啊,好,所以说这个大家一定要看好,这东西它不好做啊,然后它的各种判断,但是我们现在咱们有了分页插件之后,大家注意这里面所有的数据啊,这两个肯定是我们提前设置好的,这东西是从页面页面动态传输过来的,对不对,传输过来的动态数据,这是我们提前设置好的,然后这个分页功能,咱们要用到index分页插件里面,直接帮我们做了。
16:29
看咱们需要获取不不需要,Total配需要获取不,不需要,然后我们当前的导航分页所对应的页码,咱们需要各种判断,在获取不需要不需要分页插件里面全部都给我们提供好了,所以说咱们有了分页插件之后,你的分页功能就会变得非常简单,而如果你没有分页插件的话,大家注意这个分页确实不太好写,它不是有多难,它关键就是麻烦,这个大家注意啊。好,那行,那下面呢,咱们就把这个分页插件该如何来使用,然后咱们来讲一下,当然这个过程呢,大家如果说没有写过的话,无所谓,因为咱们在最后讲SSM整合的时候,咱们会给大家去这个把这个分页功能呢,给大家写到咱们的一个项目中,OK吧啊。
我来说两句