00:00
好,那这个插件呢,我们就说完了,我们学这个插件原理,目的呢,是为了让大家把这个PA helper,把这个插件呢用的更溜一点,那我们这个PA helper呢,它是我们一个第三方的非常优秀的一个分页插件,我们把贝蒂呢,要做分页功能的话,哎,用它来做就会非常强大,很简单,好,我们来把它用一下,这个分页插件呢,大家可以去我们这个百度上来搜索我们这个page help。好,那么呢,第一个啊,Get help下的这个PA helper项目就是了,然后呢,我们来点进来这个page helpler呢,它是一个马贝蒂的分页插件,怎么用呢?这一块点how to use,或者呢,这还有中文文档,大家也可以点进去来看哎,如何使用分页插件,诶这里边有提示点进来,好,他说要用分页插件,首先第一步引入炸包来,你可以从下边的地址中呢,下载到我们这个PA ho help的这个炸包,那我们呢,就随便点一个好下载我们这个最新版的5.0,好,我们用最新版啊,我来下载它的这个炸包,诶就是这个炸,大家同时呢,把源码包以及文档也可以下载下来,好,我们把这个下载出来。
01:21
接下来我们继续来看这个炸包,下载好以后呢,它说由于使用了SQ解析工具把它保留,然后呢,你还需要下载这个炸包,那我们把这个也点一下啊,把这个也下载出来,就是它这两个炸包我们下载来,下载来以后呢,我们接下来如果用me的方式,那就直接一个依赖就完事了,我们现在呢,把这两个炸包拿过来。好,我们下载到这个page helper。哎,以及咱们这个。及circle,哎,那么这两个呢,炸包我们下载出来了,下载出来呢,包括咱们这个page help的源码包,大家也可以下载出来,就是这个source。
02:03
啊,这是我们配置help的相关包,我们来用它做一个封页。哈味,过来。好,我们在这里边呢,测试一些我们马贝蒂斯的其他应用场景,好,比如我们先来测试一个封页,有些同学说了,哎,那分页有什么好做的,不过就是给这个map文件里边,哎,我们给这个where语句的时候呢,我们加上limit就行了,这是my circle,如果Oracle分页的话呢,那就更复杂了,而且呢,有些方法,哎,有些方法呢,我们不想分页,用着用着呢,突然又想分页了,所以说呢,这个呃,灵活性我们如果在这里边来写的话呢,啊,就很难把控到,那我们接下来呢,就可以借助PA help这个分页插件,好看我怎么做,我来到这个member中,我们来定义一个查询employee所有员工的方法。
03:06
默认呢,它是一个,哎,我们来查询一个list。好,查出我们这个,我们就叫get emps,好,开始呢查询所有员工,把这个方法定义出来。好,Select查询方法呢,名就是它result type返回值类型。哎,就是我们这个返回的employee对象,哎,非常简单的一个SQ语句,Select这些字段,From t PL employee,好,这呢是一个非常简单的SQ语句资料,那么呢,如果我们来调用测试来调用这个方法,那我们就会查出所有员工。好,我们就在这里边进行测试。我们从session中open session.get member,诶,拿到我们这个employee。
04:06
好,拿到咱们这个接口对应的代理对象,好,我们调用map的点get emps,拿到所有员工,我们来便利一下,哎,这就是我们数据库里边的所有员工,诶,没没问题。In employ1好,那么呢,如果大家想要查这个员工做封页,那么呢,我们可能得写更多的逻辑,我们得改SQ语句,哎,这是所有员工,然后呢,包括circleql语句,我们这个方法定义要重新定义,我们给里边要传入分页参数等等,但是呢,如果用了配置help了,这是一个非常优秀的分页插件,哎,它呢可以,哎低嵌入式的让我们完成咱们这个分页功能,好看我第一步把我们的封页的这几个炸包我拿过来。哎,这是它,哎这两个这个炸包和它依赖的这个circle包,这是它的源码,哎我们源码呢,先不用好把这两个炸包我们来导入。
05:10
导入以后呢,我们来看到官方文档,他说你把这个导入进来以后,第二个使用咱们这个插件特别注意,哎,新版的拦截器呢,诶我们来看啊,这个插件也是做了一个配置intercept这个拦截器,我们只需要在马贝蒂的插M配置中来添加这个拦截器就行了,好,我们就来添加,哎,用plugs标签,我们在全局配置里边。全局配置里边我们来添加一个插件plugins,好,这个插件叫plug,它的全类名是它来我们导入正确,大家想导源码的话呢,我们来点击绑定源码外部的文件桌面,来我们桌面上的这个这个source就是它的源码,大家也可以看一下,诶这呢哎,就是它实现了intercept接口,诶拦截ex的查询方法,好,这个实现呢,大家可以进去看一看,我们就来把它用起来。
06:12
好,这个插件配的时候呢,哎,也可以配置一些参数,这些参数呢,我们后边会有介绍,大家也可以看着官方文档怎么配置,包括呢,如果跟spring整合怎么配,大家来看来我们就用第一种,我们直接在全局配置文件中把这个插件一注册来和所有的参数代表什么意思,大家也可以进来看一下,我们往下翻看它怎么用好,如何在代码中使用分页插件,分页插件呢,支持以下的使用方式,非常简单,第一种,如果我们是用circle session原生API进行增删改查的,你传一个new,一个U棒子来传入你封页的内容,而我们这种呢,我们不用,我们用第二种,我们是调用接口的增删改查的,他说调用接口的增删改查之前,你只需要调用page help.start page传入分页参数就行了,哎,分页就会变得非常简单,大家现在来看。
07:13
这个方法呢,是查询所有的方法走。哎,所有员工一到16号全出来,接下来假设呢,我们想要完成分页功能,哎,只需要调用他的page helper第start page,诶,传入一个page number,你要第几页,我要第一页数据,每页呢,我们来五条记录,诶我们只调了一个这个方法看好啊,接下来我们再来测试。走。哎,我们来看,哎拿到几条数据啊,是不是五条啊,哎,这样的话呢,我分页就完成了,在我们目标查询方法之前,诶,这是我们这个目标查询方法,在我目标查询方法之前呢,它会调用新的一个查询语句,哎把咱们这个数统计,包括呢,把我们这个目标方法改造,哎,加上厘米的,所以说呢,这个原理大家也可以看它的这个源码,我们这个分页插件就跑起来了,这个分页插件呢,也有非常强强大的其他功能。
08:17
比如呢,我们可以拿到。拿到咱们这个当前分页的这个详细信息,哎,我们查出来数据以后呢,哎,可以输出一下当前分页的详细信息。哎,比如呢当前页码,当前页码是多少呀?啊,我们可以从从咱们这个呢PA help了,哎,它会返回一个配置对象,我们可以从这个配置对象中拿到第二第二比如呢咱们有一个呃当前页码啊,我们来看有一个配置number诶这是当前页码,包括呢其他信息我们都可以获取到,哎,咱们的总记录数有多少呀?啊总记录数我们也可以拿到。
09:00
加上配置第二啊,比如呢,我们get我们来看啊,有一个total,这是包装了总记录数,包括呢我们来看。哎哎,每页每页的记录数,哎,每页呢是有几条记录啊,我们也可以从配置中点get来,这里边有一个page size,哎,所以说呢,我们继续拿其他我们来看,还有没有什么其他可用的分页信息呢?哎,page.get我们来看啊,得到get pages就是有多少个总页码,总页码哎,总共有多少页啊,我们也能拿得到,等等等等所有信息我们都能拿得到。好,我们可以来看一下它打印的信息对不对,找。好,当前页码第一页总记录数十四条,哎,每页呃,五条记录总页码三页,那么我们接下来让他来到第二页。走,我们来看,哎也一样,当前页码第二页总记录数十四,所以说呢,这一块就能全部查完,而且呢,还有一个非常厉害的用法,往下翻,往下翻这一块呢,还有一个叫派音做的用法,也就说呢,你可以用一个PA英符,你看啊,把查出来的数据用派英镑包装,这个派英镑里边呢,也有非常多的咱们这个分页详情,包括是否有下一页,哎是否呢是最后一页,是否是第一页等等所有信息都有,诶所以说呢,你可以用配置help返回的这个配置也可以用,哎,我们人家叫new一个配置音放,哎,拿这个配置音放包装我们查完的这个emps。
10:51
返回一个配置音符对象,然后呢,这个英符对象里边也能拿到分页的详细信息,那这个配置的打印我们就放在这儿,我们拿配置英符再来看。
11:05
CTRCCTRLV,好,比如呢,我要获取当前页码,我们就可以拿到咱们这个Ino.get哎,我们当前页码呢,配置number,哎,包括Ino.get total,我们总页码包括ino,获取咱们这当前页哎,就每页的大小包包括我们这个get,咱们这个pages总共有呢,有多少页包括呢,我们还能获取更多的,大家来看啊。这个配置应错的分页信息就更详细了,来是否第一页?是否最后一页等等。加配点,我们来看是否第一页is,哎。来看啊,这里边有没有,是否是第一页啊。哎,我们刚才看这个page for好像有这个有这个方法吧,Is什么last啊,Is first我们来看啊,这一块呢,有一个叫。
12:04
First page。哎,我们这个不叫派啊,这个叫in for啊,我们打错对象了啊,For。第2IS first配置,哎,是否第一页是否最后一页,那么各种详细信息我也就不打印了,我们来看一下,那配置in也行。好。哎,是否第一页,哎,不是,这是我们第二页,如果我们翻到第一页,哎。这些信息都是对的,包括这个配置应付,其实还有一个更强大的做法,大家来看啊。这个配置英状我们在拗的时候,哎,在拗它的时候。走。那么在new pageport的时候,还能传一个两个参数的,第一个参数就传我们封装的结果,第二个参数叫navigate pages,咱们这个分页导航,哎这块呢,就是传入,传入我们要连续显示几页,要咱们这个连续。
13:10
连续显示多少页?所以说呢,咱们这个连续显示多少页,假设呢,我让它一次连续显示五页,那么呢,我们就可以在这里边打印出,哎,咱们这个连续分页,哎,是从第几页到第几页,我们之前如果要做分页逻辑的话,我们还需要一些哎比较复杂的计算,比如呢,我们连系显示五页,第一页那就是显示一到五,第二页呢还是一到五,第三页呢,我们就是前面两页一二,后边两页445还是一到五,而第四页的话呢,那就是23456,哎,前面两页后边两页这么来显示等等,那么包括各种情况我都需要计算,那么呢,我们现在有了这个分页插件以后,哎,我们只需要告诉我们这个插件你要连续显示多少页,接下来就可以调用info.get哎,有一个叫navigate page numbers拿到我们连续显示的这些页码。
14:14
连续显示的咱们这个页码,然后呢,我们来看一下这些页码,我把它遍历出来,好,那么呢,我们来可以输出一下这些页码。哎,每一个页码呢,就是numbers,哎,好,这样的话呢,我们来显示测试一下。测试一下。走好,我们来看连续显示的页码是1123,因为呢,我们现在总页码只有三页,我们要连续显示五页,所以说只能显示出三页,我呢为了演示方便,你看啊,我取出第一页数据,每页五条,我变成每页一条,这样的话呢,我们就会取出,哎,我们的页码就会非常多啊,我们的总记录数就是页码,我们来看啊,那么就会有14页,第一页呢,就是连续显示12345,那如果是第五页,那这一块应该打印就是34567,哎,所以说呢,我接下来给它翻到第五页。
15:16
翻到第五页以后呢,我们再来找。诶34567,所以说连续显示的页码,诶,我们直接都可以拿到这个页码去我们这个前端的这个JSP页面取出来,诶这样我们就能会非常快速的来做出一个,哎,非常强大的分页逻辑,好,那么咱们这个分页插件的一些其他应用呢,大家就参照我们这个官方文档的提示,哎,比如呢,这块如何使用,还有分页插件往下走,有它的这个插件规范,哎如何用,大家呢,都来看一下这个文档,哎把剩下的工作呢,哎,大家来慢慢的配出来,那这个风险插件也是非常强大的,哎,它呢能支持各种主流数据库的分页,嗯,好。
我来说两句