SpringBoot集成MyBatis的分页插件PageHelper

【写在前面】

项目的后台管理系统需要展示所有资源信息,select * 虽然方便但数据量过于庞大会严重降低查找效率,页面加载慢,用户体验差。分页自然是必要选择,但原生的方法过于繁杂。MyBatis的分页插件PageHelper和SpringBoot的集成是更好的选择,它的使用非常简单,开发更为高效。

代码如下

一、pom文件导入依赖

<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.5</version></dependency>

二、配置application.yml

##pagehelper分页插件
pagehelper:helperDialect: mysqlreasonable: truesupportMethodsArguments: trueparams: count=countSql

三、编写PageRequestPageResult 实体类

package com.jxnu.os.model;/*** @author xiao*/
public class PageRequest {/*** 当前页码*/private int pageNum;/*** 每页数量*/private int pageSize;public int getPageNum() {return pageNum;}public void setPageNum(int pageNum) {this.pageNum = pageNum;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}
}
package com.jxnu.os.model;import java.util.List;/*** @author xiao*/
public class PageResult
{/*** 当前页码*/private int pageNum;/*** 每页数量*/private int pageSize;/*** 记录总数*/private long totalSize;/*** 页码总数*/private int totalPages;/*** 数据模型*/private List<?> content;public int getPageNum() {return pageNum;}public void setPageNum(int pageNum) {this.pageNum = pageNum;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public long getTotalSize() {return totalSize;}public void setTotalSize(long totalSize) {this.totalSize = totalSize;}public int getTotalPages() {return totalPages;}public void setTotalPages(int totalPages) {this.totalPages = totalPages;}public List<?> getContent() {return content;}public void setContent(List<?> content) {this.content = content;}
}

四、service层 编写findPagePageInfo方法

 public PageResult findPage(PageRequest pageRequest,Integer p_id) {return PageUtils.getPageResult(pageRequest, getPageInfo(pageRequest,p_id));}/*** 调用分页插件完成分页* @param pageRequest* @return*/private PageInfo<Resource> getPageInfo(PageRequest pageRequest,Integer p_id) {int pageNum = pageRequest.getPageNum();int pageSize = pageRequest.getPageSize();PageHelper.startPage(pageNum, pageSize);List<Resource> resources = resourceMapper.selectPage(p_id);return new PageInfo<Resource>(resources);}

五、controller层编写findPage方法

@PostMapping(value="/findPage")public Object findPage(@RequestBody(required = false) PageRequest pageQuery,Integer p_id) {//System.out.println(pageQuery.getPageNum());//System.out.println(p_id);return resourceService.findPage(pageQuery,p_id);}

ok ,大功告成!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 注解:@PostConstruct和@PreConstruct

从Java EE5规范开始&#xff0c;Servlet增加了两个影响Servlet生命周期的注解&#xff08;Annotation&#xff09;&#xff1a;PostConstruct和PreConstruct。这两个注解被用来修饰一个非静态的void()方法.而且这个方法不能有抛出异常声明。 使用方式&#xff0c;例如&#xff…

计算机网络(二十四)-路由算法及路由协议

1.1 路由算法 将最优的路径填入路由转发表。 1.2 路由算法分类 静态路由算法(非自适应路由算法)&#xff1a;管理员手动配置路由信息。 简便、可靠&#xff0c;在负载稳定、拓扑变化不大的网络中运行效果很好&#xff0c;广泛用于高度安全性的军事网络和较小的商业网络。 动…

研究速递:老年人的心智能力不一定在衰减,抗干扰的能力会更强

来源&#xff1a; 混沌巡洋舰长期以来&#xff0c;人们一直认为&#xff0c;衰老会导致我们的心智能力大幅下降。现在&#xff0c;乔治城大学医学中心的新研究&#xff0c;反驳这一观点&#xff0c;研究结果发表在2021年8月19日的《自然---- 人类行为》杂志上&#xff0c;由于世…

mysql 字段唯一性问题

ALTER TABLE tb ADD unique (name); 转载于:https://www.cnblogs.com/mlh1421/p/10478527.html

Java 的发展(历史)轨迹和历史变迁

Java的标准划分 Java 的版本演进到Java 2&#xff0c;根据不同层面的应用进行了细化&#xff0c;Java 2平台被分为三种版本&#xff0c;版本及其说明见 版本描述其它J2EE—企业版&#xff0c;适用于服务器&#xff0c;目前已成为企业运算、电子商务等领域的热门技术Enterprise…

计算机网络(二十五)-IP数据报格式

1.1 TCP/IP协议栈 1.2 IP数据报格式 IP数据报如果过大&#xff0c;就会对它进行分片&#xff0c;每个分片为一个分组。 版本指的是IPv4或IPv6&#xff1b;首部长度&#xff1a;单位是4B(4字节)&#xff0c;最小为5&#xff1b;区分服务&#xff1a;指示期望获得哪种类型的服…

NLP≠NLU,机器学习无法理解人类语言

来源&#xff1a;图灵人工智能 编译&#xff1a;吴彤校对&#xff1a;暮编辑&#xff1a;琰琰长期以来&#xff0c;我们一直在与机器沟通&#xff1a;编写代码--创建程序--执行任务。然而&#xff0c;这些程序并非是用人类“自然语言“编写的&#xff0c;像Java、Python、C和C …

CentOS 7 安装并启动Nginx

一、安装必要的库 1、安装gcc gcc-c yum install -y gcc gcc-c 2、gzip模块需要 zlib 库 cd /usr/local wget http://zlib.net/zlib-1.2.11.tar.gz tar -zxvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./config make && make install3、重写模块需要pcre库 cd /usr/loc…

计算机网络(二十六)-IP数据报分片

一.最大传输单元MTU 1.1 数据链路层数据帧可封装数据的上限。以太网的MTU是1500字节&#xff1b; 1.2 当数据报超过了MTU&#xff0c;则进行分片&#xff1b; 1.3 分片-IP数据报格式 标识&#xff1a;同一数据报的分片使用同一标识&#xff1b;标志&#xff1a;只有两位有意…

论文速递:智能作为信息处理系统

来源&#xff1a;混沌巡洋舰圣塔菲研究院4月就智能的本质&#xff08;不管其是人类的&#xff0c;还是机器的&#xff09;举行的研讨会&#xff0c;旨在通过跨学科的整合来促进人工智能的发展。研讨会期间&#xff0c;来自不同学科的大牛聚集在一起&#xff0c;讨论如何将智力分…

Nginx启动后无法访问页面

同个人网站 https://www.serendipper-x.cn/&#xff0c;欢迎访问 &#xff01; 【问题描述】 Nginx启动后浏览器输入IP地址无法访问页面 一、检查Nginx是否成功启动 ./sbin/nginx -t 二、检查80端口是否开放 三、打开防火墙80端口&#xff0c;重启防火墙 firewall-cmd -…

2017-12-09 JavaScript实现ZLOGO子集: 测试用例

续前文JavaScript实现ZLOGO子集: 前进转向. 在添加新功能之前, 先添加测试用例, 以应对日益复杂的代码. 选择使用QUnit编写运行测试用例. 暂时对比较复杂和I/O无关的部分进行测试. 一是代码分析部分: Antlr通过生成的分析器和定制的监听器, 对原始代码进行分析和生成指令序列的…

计算机网络(二十七)-IPv4

一.IP地址 1.1 分类的IP地址 IP地址::{<网络号>,<主机号>} 32位&#xff1a;前八位为网络号&#xff0c;后面的为主机号------>点分十进制表示 路由器也有多个IP地址&#xff1b; 中间的三个组成一个无编号网络(无名网)&#xff1b;整个网络具有6个逻辑上的…

北京“十四五”高精尖产业规划:到2025年集成电路产业实现营业收入3千亿元...

来源&#xff1a;北京物联网智能技术应用协会近日&#xff0c;《北京市“十四五”时期高精尖产业发展规划》&#xff08;以下简称《规划》&#xff09;印发。2020年&#xff0c;北京建设国内规模最大的12英寸集成电路生产线、8英寸集成电路国产装备应用示范线。国家级专精特新“…

FTP协议、电子邮件系统、Telnet远程控制

一、FTP协议 FTP定义 文件传输协议&#xff08;File Transfer Protocol&#xff09;用于因特网文件传输&#xff08;RFC 959&#xff09; FTP特性 使用客户端/服务器模式使用TCP提供可靠的传输FTP属于维护状态的协议FTP使用两条TCP连接完成数据传输 FTP的两条连接 数据连…

manjaro 安装tensorflow 【CPU版本】 环境

1 manjaro 安装anaconda package manager 安装 Anaconda 2 anaconda 设置环境 新建环境 root用户登录 conda create –n tensorflow-python3.7 python3.7 3 激活环境 source activate tensorflow-python3.7 4 安装 tensorflow 采用豆瓣进行加速下载 pip install tensorfow –…

平衡二叉查找树

红黑树-高级的二叉查找树 平衡树和非平衡树红黑树特征&#xff1a;结点都有颜色&#xff0c;插入和删除结点时要遵循红黑规则&#xff1b;红黑规则 每一个结点不是红色就是黑色&#xff1b;跟总是黑色的&#xff1b;如果结点时红色的&#xff0c;则它的子节点必须是黑色的&…

游戏的「隐藏身份」:AI与现实世界的「王牌训练师」

来源&#xff1a;雷锋网虚拟游戏对人工智能的物理性优势已经开始显现。「注&#xff1a;文章来自国际电信联盟&#xff08;ITU&#xff09;」当谈到新兴技术在改善世界各地人们生活的潜力时&#xff0c;你首先想到的可能不是电子游戏。然而&#xff0c;虚拟游戏可以在训练人工智…

Centos jdk

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载对应平台的jdk centos为jdk-8u201-linux-x64.tar.gz 服务器建立文件夹命名为jdk 把下载的jdk安装包传上去 tar zxvf jdk-8u201-linux-x64.tar.gz 解压缩 vim /etc/profile 在最下…

网页开发部署-开发工具MyEclips+Tomcat+mysql

一.相关软件 1.1 安装好MyEclipse后还需要进行如下配置。 Java JDKTomcatmysql https://pan.baidu.com/s/1GAV9TJhkZI8wiMpTteJi_w 提取码&#xff1a;wj32 1.2 Java JDK安装及配置&#xff0c;自定义安装&#xff0c;记住安装路径。 配置: 计算机------>属性------>高…