可以正常使用,虽然感觉还不太完美,但现在勉强可用,在公司主要是做PHP,C#和HTML,JS,CSS等, JAVA 很长时间处于停滞,在空闲时间做个小博客demo玩玩,在做到数据分页时,有点纠结了。
-
使用插件,但可能觉得多余,一些功能并不是我想要的;
-
前端分页,没任何意义(如果我打开页面,我只想看第一页,为什么要加载全部1000甚至10000条以上的数据);
-
查出全部,在对List进行逻辑分页,依然没有多大意义。
综合来说:此方式最节省资源,同时也保证第一次加载速度很快,因为只查询第一页的数据。
所以我决定自己做一个功能对于我来说不多于一点的一个分页小工具,是真分页,物理分页,要多少,就从数据库取多少,而不是前端通过隐藏实现的假分页,也不是代码里对List的逻辑分页。
此小工具主要是针对 Mybatis 查询参数的,接收Map类型的参数。
具体效果如下图(各种页码和Obj数据集):
主要代码如下所示:
-
PageUtil 构造函数 ,顺便说一下,有没有注意到 @getter,@setter, 这个注解是可以在编译后的 class 文件中生成指定类下面的所有 getter 和 setter 方法,这个插件叫 lombok ,百度搜,具体功能还很多,唯一觉得的缺陷是不可以生成注释,还有不能同时支持多个有不同参数的构造函数;
其中一个亮点是:支持 var ,写过js的人都知道,还有写过C#的人也都知道C#是支持 var 的,使用 var 的优势在于不需要考虑是什么类型,它会自动判断类型,这一切都是基于java强大的反射,废话不多说,接着说正事。
提醒各位使用想使用 var 的coder,虽然可以使用 val ,但是觉得不好看,要使用 var 请在根目录新建 lombok.config ,内容为: lombok.var.flagUsage = ALLOW ,否则会报错,没有权限使用var,看需求使用,本人只在测试的时候用,实际还是笨办法,使用 IDE 生成……
此处省略getter和setter……
2.Mybatis中的 SQL :
3. service 层具体代码:
代码分析:第一个红框是封装查询参数,必要参数是4个,另外通过map.put自定义参数;最终到前端的数据为实例化带4个参数的pageUtil构造函数。
4. controller 层具体代码:
代码分析:参数:articleId,自定义封装到map中的一个查询参数;page:当前页码;10:每页10条。
到目前为止,满足日常使用,更多功能,以后抽时间再添加和完善:-D