网站首页 > 技术文章 正文
可以正常使用,虽然感觉还不太完美,但现在勉强可用,在公司主要是做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
猜你喜欢
- 2024-10-16 MySQL 使用 limit 分页会导致数据丢失、重复和索引失效
- 2024-10-16 elasticsearch 分页查询 search_after 深分页
- 2024-10-16 SpringBoot整合oceanbase,实现oracle无缝切换到oceanbase
- 2024-10-16 百万数据导出Excel,通过优化深度分页和线程编排,效...
- 2024-10-16 Mongodb 分页查询与排序查询 mongodb排序查询sort
- 2024-10-16 MVC模式下用Servlet和jsp分页的HelloWord
- 2024-10-16 elasticsearch 分页查询scroll 深分页
- 2024-10-16 京东终面:ElasticSearch深度分页如何优化?
- 2024-10-16 spring boot封装通用的查询+分页接口
- 2024-10-16 Elasticsearch 分页查询 from + size 浅分页
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)