Springboot+jdbcTemplate  对查询结果列表做分页,

之前开发的小项目,数据逐渐增多,每次返回所有的查询结果,耗费性能和时间

想到做分页。 于是从简单的分页做起。 jdbcTemplate中实现分页。

新增一个页面对象, 分页需要知道当前是第几页,每页多少条数, 一共有多少页。查询显示的列表信息。 更多的还有数据排序,按照哪一个字段进行、或者哪几个字段进行 升序或者降序的排列。

PageList页面对象

package com.example.demo.utils;import java.util.ArrayList;
import java.util.List;/*** 封装分页对象**/
public class PageList {private int page;   //当前页private int totalRows;   //总行数private int pages;    //总页数private List list=new ArrayList();public int getPage() {return page;}public void setPage(int page) {this.page = page;}public int getPages() {return pages;}public void setPages(int pages) {this.pages = pages;}public List getList() {if(list==null){list=new ArrayList();}return list;}public void setList(List list) {this.list = list;}public int getTotalRows() {return totalRows;}public void setTotalRows(int totalRows) {this.totalRows = totalRows;}
}

 

其他就是在controller中添加

@GetMapping("/findAllbyPager")@ResponseBodypublic PageList findAllbyPager(int pagenum, int pagerow) {PageList pageList = new PageList();if(pagenum == 0){pagenum=1;}if(pagerow == 0){pagenum=30;}List<User> list= userService.findAllbyPage(pagenum, pagerow );int TotalRows = userService.countAll();pageList.setPage(pagenum);pageList.setTotalRows(TotalRows);int pages= 0;if(TotalRows % pagerow == 0){ pages = TotalRows / pagerow;}else { pages = TotalRows / pagerow +1 ;}System.out.println("目前分页的总页数是"+pages);pageList.setPages(pages);pageList.setList(list);return pageList;}

int类型,没有传入值的时候,做的处理;

第几页,每页的行数,是传进来的数据,

拼接到sql中进行查询的时候,用limit做限制,比如下面的

 @Overridepublic List<User> findAllbyPage(int pagenum, int pagerow) {int starter = (pagenum-1)*pagerow;String sql = "select id, name, age from user order by id asc  limit " + starter +" , "+ pagerow;List<User> list = jdbcTemplate.query(sql,new UserRowMapper());return list;}

【需要注意limit后面有空格, pagenum 和 pagerow 之间除了有逗号外,还有空格】 

pagenum需要设置一下,最好新增一个starter表示从第几行开始
第一页从1开始
第二页从 (2-1)*pageROW 开始, 我这边省略

select * from table limit m,n
其中m是指记录开始的index,从0开始,表示第一条记录
n是指从第m+1条开始,取n条。

select * from tablename limit 0,5
即取出第1条至第5条,5条记录

select * from tablename limit 5,5
即取出第6条至第10条,5条记录

查询结果:

请求的内容:

GET http://localhost:8080/findAllbyPager?pagenum=5&pagerow=2

返回的结果:

更详细的的信息,比如如何获取总条数,请看下面的github中代码

https://github.com/JasmineQian/SpringDemo_2019/tree/master/jdbcTemplate2page

 

 

转载于:https://www.cnblogs.com/qianjinyan/p/10357485.html

jdbcTemplate 后台接口中的分页相关推荐

  1. Vue中使用vue-quil-editor富文本编辑器+el-upload实现带图片上传到SpringBoot后台接口

    场景 系统中经常会用到富文本编辑器,比如新增通知和公告功能,并且需要添加上传图片. vue-quill-editor官网: https://www.npmjs.com/package/vue-quil ...

  2. Vue中使用js-audio-recorder插件实现录音功能并实现上传Blob数据到SpringBoot后台接口

    场景 浏览器web端实现语音消息录制并在录制结束之后将其上传到后台接口. 若依前后端分离版手把手教你本地搭建环境并运行项目: 若依前后端分离版手把手教你本地搭建环境并运行项目_霸道流氓气质的博客-CS ...

  3. ajax调取json接口,通过 Ajax 调取后台接口将返回的 json 数据绑定在页面上

    第一步: 编写基础的 html 框架内容,并引入 jquery: 测试Ajax 第二步: 在 " " 中间插入要点击的按钮和用来显示数据的 标签,并编写对应的 function: ...

  4. html调后台接口_前后端分离之让前端开发脱离接口束缚(mock)

    来源 | https://www.cnblogs.com/milo-wjh/p/6424246.html前后端分重构完成,再书写交互时遇到后台接口尚未完成,无法得到接口返回的测试数据,但是我们又需要一 ...

  5. [数据库]Oracle和mysql中的分页总结

    Mysql中的分页 物理分页 •在sql查询时,从数据库只检索分页需要的数据 •通常不同的数据库有着不同的物理分页语句 •mysql物理分页,采用limit关键字 •例如:检索11-20条 selec ...

  6. 运动想象脑机接口中迁移学习的完整流程

    点击上面"脑机接口社区"关注我们 更多技术干货第一时间送达 脑机接口(Brain-Computer Interface, BCI)可以让用户使用脑电信号直接与计算机或其他外部设备进 ...

  7. 深度学习技术在脑机接口中的应用

    大家好! Rose给大家分享一下深度学习技术在脑机接口中的应用. 什么是脑机接口? 脑机接口(BCI)是一种系统,可将受试者(人类或动物)的大脑活动模式提取并转换为用于交互式应用程序的消息或命令.脑活 ...

  8. 伍冬睿教授:脑机接口中迁移学习的完整流程

    大家好,今天Rose分享一篇关于脑机接口中的迁移学习的完整流程.本文由华中科技大学伍冬睿教授授权分享. 关于脑机接口中迁移学习方面的研究,伍教授团队做过大量的工作.之前社区分享过<脑机接口中的流 ...

  9. Android --- 怎么样在布局中显示服务器的图片,或者是后台项目中的图片+connect failed: ECONNREFUSED (Connection refused)问题的解决(文章最后)

    今天在写Android项目的时候遇到这样一个问题,我已经从后台SpringBoot中拿到了图片id,但是要怎么样显示到AS端呢? 首先看到了网上有用Glide的,我在这里整理一下简单明了的操作步骤 1 ...

最新文章

  1. AI一分钟 | 厉害了!英特尔正式发布电动飞行汽车;贝佐斯笑了,多家PC厂商结盟亚马逊Alexa,直怼微软Cortana
  2. Emscripten教程之入门指导
  3. codeforces 269B Greenhouse Effect
  4. CSDN×易观算法大赛火热进行中~
  5. MySQL双向主从复制
  6. (47)Xilinx VIO IP核配置(八)(第10天)
  7. Project Euler 97 :Large non-Mersenne prime 非梅森大素数
  8. SAP License:AM-资产冻结与停用
  9. 代腾飞(为自己名字作诗)
  10. linux下共享win下文件夹权限问题,通过Samba从Windows向Linux系统传文件权限问题
  11. 贝叶斯公式的共轭分布
  12. 使用Windows 7 管理Windows 2008 R2
  13. SSCOM下载及无法打开问题解决
  14. 用友U815.0UFO报表知识点分享
  15. XX复盘记录(模板)
  16. c语言开发unity,[Unity3D]U3D开发项目总结
  17. serializer嵌套序列化
  18. 哈佛幸福课--部分笔记
  19. 我的世界java版和基岩版对比_我的世界:java版和基岩版你更看好哪个?未来的发展,谁会更好...
  20. easyUI可编辑表格编辑器添加事件

热门文章

  1. wireshark抓包图解 TCP三次握手/四次挥手详解
  2. Java核心技术点之动态代理
  3. ER图,数据建模与数据字典
  4. Java Number 类
  5. 【前端开发系列】—— CSS3属性选择器总结
  6. 特征检测和跟踪经典理论
  7. 编程之美-分层遍历二叉树方法整理
  8. 安全篇之手机数字密码九宫格究竟哪个更安全?
  9. 漏洞: RHSA-2017:3075: wget security update
  10. 10-9-堆排序-内部排序-第10章-《数据结构》课本源码-严蔚敏吴伟民版