日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jdbcTemplate 后台接口中的分页

發(fā)布時間:2025/3/21 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jdbcTemplate 后台接口中的分页 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Springboot+jdbcTemplate? 對查詢結(jié)果列表做分頁,

之前開發(fā)的小項目,數(shù)據(jù)逐漸增多,每次返回所有的查詢結(jié)果,耗費性能和時間

想到做分頁。 于是從簡單的分頁做起。 jdbcTemplate中實現(xiàn)分頁。

?

新增一個頁面對象, 分頁需要知道當(dāng)前是第幾頁,每頁多少條數(shù), 一共有多少頁。查詢顯示的列表信息。 更多的還有數(shù)據(jù)排序,按照哪一個字段進(jìn)行、或者哪幾個字段進(jìn)行 升序或者降序的排列。

PageList頁面對象

package com.example.demo.utils;import java.util.ArrayList; import java.util.List;/*** 封裝分頁對象**/ public class PageList {private int page; //當(dāng)前頁private int totalRows; //總行數(shù)private int pages; //總頁數(shù)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("目前分頁的總頁數(shù)是"+pages);pageList.setPages(pages);pageList.setList(list);return pageList;}

?

int類型,沒有傳入值的時候,做的處理;

第幾頁,每頁的行數(shù),是傳進(jìn)來的數(shù)據(jù),

拼接到sql中進(jìn)行查詢的時候,用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需要設(shè)置一下,最好新增一個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條記錄

?

查詢結(jié)果:

請求的內(nèi)容:

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

返回的結(jié)果:

?

?

?更詳細(xì)的的信息,比如如何獲取總條數(shù),請看下面的github中代碼

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

 

 

轉(zhuǎn)載于:https://www.cnblogs.com/qianjinyan/p/10357485.html

總結(jié)

以上是生活随笔為你收集整理的jdbcTemplate 后台接口中的分页的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。