pagehelper分页查询

pagehelper分页查询

PageHelper是MyBatis框架中提供的分页插件,它支持Oracle、Mysql、MariaDB、SQLite、Hsqldb、PostgreSQL六种数据库。使用PageHelper可以方便地进行分页查询,只需在SQL查询前调用PageHelper.startPage方法并传入两个参数:page=页码,rows=每页显示的条数。例如,PageHelper.startPage(1, 20)表示请求第一页,每页显示20条数据。

1.pom文件

引入 pagehelper pom文件

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

2.Controller

控制层接收到"/page"请求,传递到后台参数封装为了EmployeePageQueryDTO对象

调用service层

   /*** 员工分页查询* @param employeePageQueryDTO* @return*/@GetMapping("/page")@ApiOperation("员工分页查询")public Result<PageResult> page(EmployeePageQueryDTO employeePageQueryDTO) {log.info("员工分页查询,参数为: {}", employeePageQueryDTO);PageResult pageResult = employeeService.pageQuery(employeePageQueryDTO);return Result.success(pageResult);} 

2.PageResult

封装的分页查询结果

/*** 封装分页查询结果*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageResult implements Serializable {private long total; //总记录数private List records; //当前页数据集合
}

3.EmployeePageQueryDTO

封装的前台传递过来的数据

@Data
public class EmployeePageQueryDTO implements Serializable {//员工姓名private String name;//页码private int page;//每页显示记录数private int pageSize;
}

4.Service

    /*** 分页查询* @param employeePageQueryDTO* @return*/PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO);

5.ServiceImpl

调用PageHelper方法进行分页查询

需要两个参数 页码,和每一页展示的数量个数

   /*** 分页查询* @param employeePageQueryDTO* @return*/public PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO) {//开始分页查询PageHelper.startPage(employeePageQueryDTO.getPage(), employeePageQueryDTO.getPageSize());Page<Employee> page = employeeMapper.pageQuery(employeePageQueryDTO);long total = page.getTotal();List<Employee> result = page.getResult();return new PageResult(total, result);}

6.Employee

员工的实体类

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Employee implements Serializable {private static final long serialVersionUID = 1L;private Long id;private String username;private String name;private String password;private String phone;private String sex;private String idNumber;private Integer status;//@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")private LocalDateTime createTime;//@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")private LocalDateTime updateTime;private Long createUser;private Long updateUser;
}

7.mapper

   /*** 分页查询* @param employeePageQueryDTO* @return*/Page<Employee> pageQuery(EmployeePageQueryDTO employeePageQueryDTO);

8.mapper.xml

PageHelper会自动的补全sql代码

<select id="pageQuery" resultType="com.sky.entity.Employee">select * from employee<where><if test="name != null and name != ''">and name like concat('%',#{name},'%')</if></where>order by create_time desc</select>
控制台输出记录2023-10-10 22:37:55.033  INFO 18988 --- [nio-8080-exec-5] c.s.controller.admin.EmployeeController  : 员工分页查询,参数为: EmployeePageQueryDTO(name=null, page=1, pageSize=10)
2023-10-10 22:37:55.239 DEBUG 18988 --- [nio-8080-exec-5] c.s.m.EmployeeMapper.pageQuery_COUNT     : ==>  Preparing: SELECT count(0) FROM employee
2023-10-10 22:37:55.240 DEBUG 18988 --- [nio-8080-exec-5] c.s.m.EmployeeMapper.pageQuery_COUNT     : ==> Parameters: 
2023-10-10 22:37:55.246 DEBUG 18988 --- [nio-8080-exec-5] c.s.m.EmployeeMapper.pageQuery_COUNT     : <==      Total: 12023-10-10 22:37:55.250 DEBUG 18988 --- [nio-8080-exec-5] com.sky.mapper.EmployeeMapper.pageQuery  : ==>  Preparing: select * from employee order by create_time desc LIMIT ?//这里显示了 自动补全的代码LIMIT2023-10-10 22:37:55.252 DEBUG 18988 --- [nio-8080-exec-5] com.sky.mapper.EmployeeMapper.pageQuery  : ==> Parameters: 10(Integer)
2023-10-10 22:37:55.256 DEBUG 18988 --- [nio-8080-exec-5] com.sky.mapper.EmployeeMapper.pageQuery  : <==      Total: 4

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

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

相关文章

唐老师讲电赛

dc-dc电源布局要点

二维数组多次排序 或 嵌套list多次排序

可以排序int[ ][ ]的顺序&#xff0c;也可以排序List<List<Integer>> 顺序 为便于理解&#xff0c;以力扣原题为例&#xff1a;1333.餐厅过滤器 原题中给了一个双重数组&#xff0c;并要求返回一个List<Integer>。 方法1&#xff1a; 会用流的&#xff0c…

存档&改造【04】二维码操作入口设置细节自动刷新设置后的交互式网格内容的隐藏

因为数据库中没有数据无法查看设置效果&#xff0c;于是自己创建了个测试数据表&#xff0c;用来给demo测试 -- 二维码操作入口设置 create table JM_QR_CODE(QR_CODE_ID NUMBER generated as identity primary key,SYSTEM_ID NUMBER(20) not null,IS_ENAB…

iceberg简介004_iceberg和其他数据湖框架的对比---​​数据湖Apache Iceberg工作笔记0004

然后来看一下iceberg和其他数据湖框架的对比这里可以看到hudi支持的多一点对吧,但是 iceberg有自己的优势,并且他们都支持timeline 也就是时间旅行对吧. 然后这个图是显示了,数据湖三剑客的开源时间,以及火热程度,可以对比一下看看.

R语言R包详解——stringr包:字符处理

R语言 R语言R包详解——stringr包&#xff1a;字符处理 一切用法皆以说明书为准&#xff0c;想要了解该包&#xff0c;请多查阅说明书或者查看底层算法。 文章目录 R语言一、安装与加载R包二、函数简介三、函数详解3.1、str_c: 字符串拼接3.2、str_trim: 去掉字符串的空格和TA…

关于Go语言的底层,Slice,map

1 Slice Slice底层实现原理 切片是基于数组实现的&#xff0c;它的底层是数组&#xff0c;它自己本身非常小&#xff0c;可以理解为对底层数组的抽象。因为基于数组实现&#xff0c;所以它的底层的内存是连续分配的&#xff0c;效率非常高&#xff0c;还可以通过索引获得数据…

win1011安装MG-SOFT+MIB+Browser+v10b

文章目录 安装MG-SOFTSNMP服务配置安装MG-SOFT启动MIB-Browser以及错误解决MIB Browser使用 安装MG-SOFT win10和win11安装基本一样&#xff0c;所以参照下面的操作即可&#xff01; SNMP服务配置 打开设置&#xff0c;应用和功能&#xff0c;可选功能&#xff0c;选择添加功…

java项目中git的.ignore文件设置

在Git中&#xff0c;ignore是用来指定Git应该忽略的故意不被追踪的文件。它并不影响已经被Git追踪的文件。我们可以通过.ignore文件在Git中指定要忽略的文件。 当我们执行git add命令时&#xff0c;Git会检查.gitignore文件&#xff0c;并自动忽略这些文件和目录。这样可以避免…

归纳所猜半结论推出完整结论:CF1592F1

https://www.luogu.com.cn/problem/CF1592F1 场上猜了个结论&#xff0c;感觉只会操作1。然后被样例1hack了。然后就猜如果 ( n , m ) (n,m) (n,m) 为1则翻转4操作&#xff0c;被#14hack了。然后就猜4操作只会进行一次&#xff0c;然后就不知道怎么做下去了。 上面猜的结论都…

计算机网络 面试题

PART1 1.TCP和UDP的区别是什么&#xff1f; 2.TCP报文首部格式是什么&#xff1f; 3.TCP三次握手的过程 4.为什么TCP要三次握手&#xff1f; 5.TCP三次握手的数据报可以携带数据吗&#xff1f; 6.半连接队列是什么&#xff1f; 7.SYN 洪泛攻击是什么&#xff1f; 8.TCP…

PCL点云处理之Pcd文件读取、法线与曲率计算、多线程加速、属性字段合并 (二百零八)

PCL点云处理之Pcd文件读取、法线与曲率计算、多线程加速、属性字段合并(二百零八) 一、相关介绍二、算法实现1.代码一、相关介绍 (夜深人不静) 法线和曲率的计算是点云处理中常用的关键特征,PCL提供了特有的点类型PointNormal来记录这些信息,通过OMP多线程对相关的计算函…

数据源作用以及spring配置数据源

数据源 数据源&#xff0c;简单理解为数据源头&#xff0c;提供了应用程序所需要数据的位置。数据源保证了应用程序与目标数据之间交互的规范和协议&#xff0c;它可以是数据库&#xff0c;文件系统等等。其中数据源定义了位置信息&#xff0c;用户验证信息和交互时所需的一些…

Http请求响应 Ajax 过滤器

10/10/2023 近期总结&#xff1a; 最近学的后端部署&#xff0c;web服务器运行&#xff0c;各种请求响应&#xff0c;内容很多&#xff0c;学的很乱&#xff0c;还是需要好好整理&#xff0c;前面JavaSE内容还没有完全掌握&#xff0c;再加上一边刷题&#xff0c;感觉压力很大哈…

Postman接口测试学习之常用断言

什么是断言&#xff1f; 断言——就是结果中的特定属性或值与预期做对比&#xff0c;如果一致&#xff0c;则用例通过&#xff0c;如果不一致&#xff0c;断言失败&#xff0c;用例失败。断言&#xff0c;是一个完整测试用例所不可或缺的一部分&#xff0c;没有断言的测试用例…

285_C++_web提取AI告警信息JSON格式

struct Cache_t {AIAlarmFaceInfo Face;AIAlarmPlateInfo Plate;SAISnapedObjInfo Object;SharedCArray Common;int Type; };struct Client_t {Client_t() : AlarmCnt(HA

MAX30102心率血氧传感器

MAX30102心率血氧传感器介绍 背景基本功能基本结构基本原理采集方法直通式采集方法反射式采集方法 血氧采集原理Beer-Lambert 定理皮肤组织模型血氧测量过程AC / DC 的计算 心率采集原理 实验结果代码走读资源链接 背景 目前&#xff0c;基本上所有的可穿戴式设备都集成了心率…

【Codeforces】 CF1762E Tree Sum

题目链接 CF方向 Luogu方向 题目解法 首先考虑 n n n 为奇数的情况无解&#xff0c;这个可以通过乘积矛盾简单证明 接下来考虑一个结论是&#xff1a;偶数个点的树的形态确定之后&#xff0c;只有恰好 1 1 1 种染色方案&#xff0c;即从叶子一层一层往上面染&#xff0c;…

【Java 进阶篇】CSS盒子模型详解

CSS盒子模型是网页布局的基础之一&#xff0c;它定义了HTML元素在页面上的占用空间和相互关系。理解CSS盒子模型对于构建各种类型的网页布局至关重要。在本文中&#xff0c;我们将深入探讨CSS盒子模型的各个方面&#xff0c;包括盒子模型的概念、属性和如何使用它们来控制元素的…

爬虫进阶-反爬破解6(Nodejs+Puppeteer实现登陆官网+实现滑动验证码全自动识别)

一、NodejsPuppeteer实现登陆官网 1.环境说明 Nodejs——直接从官网下载最新版本&#xff0c;并安装 使用npm安装puppeteer:npm install puppeteer npm install xxx -registry https://registry.npm.taobao.org Chromium会自动下载&#xff0c;前提是网络通畅 2.实践操作…