hql分页获取数据总数_最简洁的分页插件PageHelper
生活随笔
收集整理的這篇文章主要介紹了
hql分页获取数据总数_最简洁的分页插件PageHelper
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
最簡潔的分頁插件PageHelper
簡介
? ? 大部分后臺管理項目,用的最多的展現(xiàn)方式是列表顯示,所以我把列表查詢中的分頁插件拿出來寫一下,方便以后寫代碼的時候直接復(fù)制粘貼。在我們最熟悉的springboot微服務(wù)開發(fā)中,持久型框架mybatis使用PageHelper還是比較方便的。下面我們來看一下分頁插件PageHelper的簡單使用方法。
01
首先在pom.xml中pageHelper引入
<dependencies> <dependency> <groupId>com.github.pagehelpergroupId> <artifactId>pagehelperartifactId> <version>4.1.6version> dependency> <dependency> <groupId>org.mybatisgroupId> <artifactId>mybatisartifactId> <version>3.4.6version> dependency> <dependency> <groupId>mysqlgroupId> <artifactId>mysql-connector-javaartifactId> <scope>runtimescope> dependency>dependencies>02
配置application.yml文件
#數(shù)據(jù)庫鏈接datasource: driver-class-name: com.mysql.cj.jdbc.Driver #com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/hzc_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC username: root password: root tomcat: initial-size: 5 max-active: 30#配置mybatismybatis: mapperLocations: classpath:mybatis/mapper*.xml typeAliasesPackage: com.ten.cn.*.model#配置pageHelperpageHelper: reasonable: "true" supportMethodsArguments: "true" returnPageInfo: check params: count=countSql03
建立一個分頁傳輸數(shù)據(jù)的實體,用來傳輸當(dāng)前頁和分頁條數(shù)
package com.ten.ms.cn.sys.bean;import com.ten.ms.cn.sys.model.User;/*** * 用戶分頁實體 * @author:lcj */public class UserPageInvo extends User { /** * 頁數(shù) */ private Integer page; /** * 條數(shù) */ private Integer rows; public Integer getPage() { return page; } public void setPage(Integer page) { this.page = page; } public Integer getRows() { return rows; } public void setRows(Integer rows) { this.rows = rows; }}05
創(chuàng)建一個分頁配置方法
package com.ten.ms.cn.common.config;import com.github.pagehelper.PageHelper;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import java.util.Properties;/*** * 分頁配置 * @author:lcj */@Configurationpublic class PageHelperConfig { /** * 配置mybatis的分頁插件pageHelper * * @return */ @Bean public PageHelper pageHelper() { PageHelper pageHelper = new PageHelper(); Properties properties = new Properties(); properties.setProperty("offsetAsPageNum", "true"); properties.setProperty("rowBoundsWithCount", "true"); properties.setProperty("reasonable", "true"); properties.setProperty("dialect", "postgresql");//配置postgresql數(shù)據(jù)庫的方言支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六種數(shù)據(jù)庫 pageHelper.setProperties(properties); return pageHelper; }}06
創(chuàng)建一個返回實體
package com.ten.ms.cn.common.bean;/** * 全局統(tǒng)一json返回值接口 * * @author user */public class ResultInfo { /** * 錯誤編號 */????private?String?errorCode?=?"0";????private?String?code?=?"200"; /** * 錯誤信息 */????private?String?errorMessage; /** * 包裝實體 */????private?Object?data; /** * 返回dataGrid的總頁數(shù) */????private?long?total; public ResultInfo() {????} /** * 返回分頁數(shù)據(jù)數(shù)據(jù) */????private?Object?rows; public ResultInfo(String errorCode, String errorMessage, Object data, long total, Object rows) { this.errorCode = errorCode; this.errorMessage = errorMessage; this.data = data; this.total = total; this.rows = rows;????} public ResultInfo(String errorCode, String errorMessage, Object data) { this.errorCode = errorCode; this.errorMessage = errorMessage; this.data = data;????} public String getErrorCode() { return errorCode;????} public void setErrorCode(String errorCode) { this.errorCode = errorCode; } public String getErrorMessage() { return errorMessage; } public void setErrorMessage(String errorMessage) { this.errorMessage = errorMessage; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } public long getTotal() { return total; } public void setTotal(long total) { if ((int) total == 0) { total = 1; } this.total = total; } public Object getRows() { return rows; } public void setRows(Object rows) { this.rows = rows; } public String getCode() { return code; } public void setCode(String code) { this.code = code; }}07
簡單的分頁實例
@RequestMapping(value = "/getUserList", method = {RequestMethod.GET, RequestMethod.POST})@ResponseBodypublic ResultInfo getUserList(@RequestBody SysUserPageInvo sysUserPageInvo) { // 定義傳參 int page = sysUserPageInvo != null && sysUserPageInvo.getPage() != null ? sysUserPageInvo.getPage() : 0;// 當(dāng)前頁數(shù) int rows = sysUserPageInvo != null && sysUserPageInvo.getRows() != null ? sysUserPageInvo.getRows() : 10;//一頁多少條數(shù)據(jù) ResultInfo result = new ResultInfo(); PageHelper.startPage(page, rows); // 獲取數(shù)據(jù) List list = this.sysUserService.getUserList(sysUserPageInvo); PageInfo pageInfo = new PageInfo(list); // 當(dāng)前分頁數(shù)據(jù) Page pages = (Page) list; // 總共多少條數(shù)據(jù) result.setTotal(pageInfo.getTotal()); result.setRows(pages); return result;}08
最終的頁面展示
總
結(jié)
? ? PageHelper的使用大概就是這樣返回給前臺的數(shù)據(jù)是當(dāng)前分頁的list列表和數(shù)據(jù)的總數(shù)。同樣如果后臺返回固定的json格式數(shù)據(jù),前臺自動加載到列表控件中。后續(xù)我會分享更多的技術(shù)相關(guān)的內(nèi)容,請大家多多關(guān)注。
掃碼關(guān)注我們
總結(jié)
以上是生活随笔為你收集整理的hql分页获取数据总数_最简洁的分页插件PageHelper的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android textedit 背景,
- 下一篇: 剑三千岛湖服务器是不是维护了,《剑网3》