标签:pagenum 分页 int list pages jdbcTemplate pagerow public
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") @ResponseBody public 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做限制,比如下面的
@Override public List<User> findAllbyPage(int pagenum, int pagerow) { String sql = "select id, name, age from user order by id asc limit " + pagenum +" , "+ pagerow; List<User> list = jdbcTemplate.query(sql,new UserRowMapper()); return list; }
【需要注意limit后面有空格, pagenum 和 pagerow 之间除了有逗号外,还有空格】
查询结果:
请求的内容:
GET http://localhost:8080/findAllbyPager?pagenum=5&pagerow=2
返回的结果:
更详细的的信息,比如如何获取总条数,请看下面的github中代码
https://github.com/JasmineQian/SpringDemo_2019/tree/master/jdbcTemplate2page
标签:pagenum,分页,int,list,pages,jdbcTemplate,pagerow,public 来源: https://www.cnblogs.com/qianjinyan/p/10357485.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。