00:00
哎,那么首先呢,我们先来说一下这个分页。呃,分页分页。来这个目标。嗯,就是将我们数据库中的我的密。数据。在页面上以。分页形式显示。这个倒没有什么太特殊的啊,当然了,这里边儿呢,如果要说的话,就是我们要附加一个条件,我们追求的。嗯,追求一个东西,就是在后端将。嗯。带关键词和不带关键词的这个分页合并为同一套。哎,代码。让我们看看这个事儿咱们怎么干哈,画个流程图。
01:04
其实我X得呢。这个画图的这个比比你写代码这个还重要。这个这个,但是往往很多同学他是觉得写代码重要。他就吭哧吭哧就抄是吧,自己不会写。不会写呀,咱们抄是吧。那你那你这个其实你为啥不会写呢?因为你没有画图,你没有搞清楚这个流程。完了,有同学说我画了图,我也不知道咋写。那么这个时候是你这个技术上有有缺的这个点,对吧,所以说这个实现业务功能一定是两条两条线,一个是你有没有思路,一个是这个技术,你会不会这两条呢?这两边是缺一不可的啊,你既得有这个思路,又得又得是能够掌握这个技术。啊,你这个,嗯,并不是画图不对啊,是你该补这个技术点就要把它给补上。首先呢,我们想想这个分页有哪些个入口哈,有哪些个请求发到我们后端做分页这个事儿。
02:06
哎,第一个是在这儿。第一个是在这儿哈。这是一个。哎,然后呢,嗯,查询这个是一个。嗯,稍微缩小一点哈。嗯,这也算是一个入口。还有就是下边点这个1234这些上页下页。这个这也是这也会去会去这个后端去找这个,呃,这个我们这个做分页这个事儿,再然后呢,嗯。呃,主要就是这些吧,啊主要就是这些,然后这些呢,就是我们分页的一个入口。
03:08
入口。这边入口过来以后呢,他要找谁,那就是去找我们admin handle。Get pitch?哎,去拿到想要去拿我们这个分页的这个数据。那admin handler呢?这个他当然去找我们的这个service。我们这也可以叫做这个get配置。那么这个时候呀,我们说这个分页这事,如果我们自己手动去做的话,其实挺费事的。如果自己手写那个配置类啊,你回忆一下我们书城那时候写这个还挺痛苦是吧,嗯。
04:03
嗯,那么我们现在的话呢,咱们用一个。呃,买贝蒂有一个插件。这是一个中国程序员写的一个插件,叫page helper。用这个插件。然后呢?呃,调它的一个方法start配置啊。他去替我们去做这个分页的事儿。就比如说呢,我们。这个。MYSQL分页呢,我们用的是这个limit。后边呢,得写两个数。对吧,一个数是,就比如说呢,第一页就是每页显示五条零五,第二页呢是五五。第三页是15。完了,我们得去算这个东西怎么算?哎,这个公式呢,是配置。Page number减一乘以个page size。写不下了哈。哎,这是公式,说我们记不住的话呢,你还得想办法去把它给推出来。
05:07
0515。不是五。15是吧,那这个时候呢,这个零呢,就是其实就是零乘以五,这是一乘以五,这是二乘以五。然后这个012是怎么算出来的呢?就是比如说第一页减一。哎。嗯,第二页减一。呃,第三页减一。用这个公式可以去算啊,但是我们自己去考虑这个,考虑这个,然后再写那个配置类啊,还得去考虑它传过来的这个页码,在这个一到总页数之间,还得去给他这个修正啊,然后这个在呃怎么样,然后再去这个去去去还有好多这个调整。这个我们自己去考虑这个事儿确实是非常的麻烦,但是有了它以后啊,这些东西呢,这个插件他都替我们做了啊,不需要我们去操心了。
06:00
做这调它的一个静态方法,下一步呢,我们就是去执行查询就好了。执行查询的时候呢,当然就得把这个关键词带上啊,因为他管分页,他管不了这个关键词查询。呃,执行查询啊,这个时候他肯定是找的是我们的in map哈。Map执行查询。这个查询的时候呢,我们。如何去兼顾到这个关键词,有的时候有,有的时候没有,有也能查,没有也能查。在这儿这个时候我们需要从这个四口语句这儿呢,咱们采取一定的这个技巧哈。嗯,这我们我们介绍这样一种办法啊,就是说这个。
07:00
Logging account。哎,然后呢。让他这个like一个。这样一个东西啊。我们把这个模糊查询这个百分号和它外边传进来这个keyword。诶。看来你们还认识这个哈。这里边呢,我们用一个circle的一个函数叫。哎,不错啊。讲过什么?就是说这个是搜里边去拼字串的一个办法。哎,这时候拼字串,那么这个东西呢,Keyword从传进来之前呢,我们让它做到一点,有的话就是这个值本身没有的话呢,让它是一个空字串。这样的话就能够实现一个兼容了。因为呢,就是说你要是这个地方如果空足串的话呢,它就成了这个like。
08:05
这个东西这个其实就就正常查就行,就无所谓了,如果要有值的话呢,就百分号啥啥啥,哎,所以这个就是有也行,没有也行啊,就是要借用它来做这样一个,呃,适配。那么这边他查完了以后呢,会返回一个数据。它会返回一个list。哎,它会返回一个list啊。嗯,这是一个admin的一个list。List集合。但是实际上它是一个这个list是个接口嘛,我们Java集合里边这是个接口,这个接口呢,这个时候它返回的类型啊,是一个配置类型。这个这是配置helper封装的一个配置类型,也就是说这个配置类呢,就是配置helper t我们写的这个配置类的。这个配置类呢,它继承了。
09:03
它继承了,所以说呢,它就可以赋值给这个list。啊,所以它们类型上是兼容的,但是呢,也因为这个问题到页面上。你要是一表达式里边去访问它这个list啊,去访问它的什么配置number呀。这个就访问不了。这100达式只认,只承认它是个list,不承认它是一个我们实体类的对象。但是现在它其实又是list又是世界类对象,可是到伊尔百达式或者G访问它的属性就访问不出来。那么这配置helper也考虑到这个问题了,所以说在这呢。在这儿啊,去把它呢,再封装一个类型封装,重新去封装到配置info里边。这个配置infer里边呢,配置INF本身不是list,它里边有个有个list类型的属性去放这个list数据。
10:08
这样的话呢,你在想要list。这回一儿表达式,我们就可以这么写。哎,配置inf.list就是list的数据。配置infer,点配置number,哎,就是其他的这些属性的数据,这就就正常了啊,所以在这呢,在封装成配置infer,再返回的话呢,就返回这个配置INF。哎,所以说页面上呢,也是用的就是这个配置音符去显示分页的数据。所有分页的数据都在配置分里边。所以说呢,这个方法呢,不如叫做get配置音符更贴切一些。
11:03
哎,这边返回配置音符,这么到我们handle方法呢,把配置in符放入模型。存入模型,哎,然后嗯。再返回到页面。呃,页面呢,就是我我们admin配置这个页面啊,来这就行了,然后剩下的事呢,就是到页面上面呢去显示数据,当然页面上面呢,其实是两部分工作,有两件事要做,一个是呃。显示表格中的主体数据。哎,就是什么呢?就是我们这一部分啊,就是这一部分,另外一个呢,是显示这个页码。这个页码呢,其实算这个呢,也挺麻烦,这个地方呢,我们也借助于一个框架来做。啊,就是解query有一个配置这么个小插件。
12:06
哎,这是一个,还有一个。使用。嗯,Page显示页码导航条。这就是我们后续呢,这个这个分页这啊就是这么一个流程。
我来说两句