网站首页 > 教程文章 正文
简单使用
官网:https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter
在官网可以查看PageHelper的maven坐标
①导入通用PageHelper的坐标
②在mybatis核心配置文件中配置PageHelper插件
③测试分页数据获取
①导入通用PageHelper坐标
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.1</version>
</dependency>
②在application.properties核心配置文件中配置PageHelper插件
# 设置分页插件
#pagehelper分页插件配置
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
properties页面详解
- dialect:使用时必须指定该属性,可选值为oracle,mysql,mariadb,sqlite,hsqldb,postgresql,没有默认值,必须指定该属性。
- reasonable:配置分页参数合理化功能,默认是false。 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>总页数会查询最后一页; #禁用合理化时,如果pageNum<1或pageNum>总页数会返回空数据。
- support-methods-arguments:支持通过Mapper接口参数来传递分页参数,默认值false,分页插件会从查
- 查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。
- params:为了支持startPage(Object params)方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值; 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值, 默认值为pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero
测试环境
@Test
public void testPageHelper() {
//设置分页参数
PageHelper.startPage(1,2);
//设置查找到的数据集合,这边要调用查询所有数据的方法
List<admin> select = adminMapper.findAll();
//其他分页的数据,第二个参数可选,表示导航页显示几个
PageInfo<admin> pageInfo = new PageInfo<>(select,5);
//分页相关参数
System.out.println("总条数:"+pageInfo.getTotal());
System.out.println("总页数:"+pageInfo.getPages());
System.out.println("当前页:"+pageInfo.getPageNum());
System.out.println("当前页显示的真实条数:"+pageInfo.getSize());
System.out.println("每页显示长度:"+pageInfo.getPageSize());
System.out.println("是否第一页:"+pageInfo.isIsFirstPage());
System.out.println("是否最后一页:"+pageInfo.isIsLastPage());
System.out.println("下一页的页码:"+pageInfo.getNextPage());
System.out.println("上一页的页码:"+pageInfo.getPrePage());
System.out.println("是否存在上一页:"+pageInfo.isHasPreviousPage());
System.out.println("是否存在下一页:"+pageInfo.isHasNextPage());
System.out.println("导航分页的页码数,就是上面设置的5:"+pageInfo.getNavigatePages());
System.out.println("导航分页的页码:"+
Arrays.toString(pageInfo.getNavigatepageNums()));
System.out.println(pageInfo.getList());
}
其实最后pageInfo.getList()可以获取大部分内容,如下
Page{
count=true,
pageNum=1,
pageSize=2,
startRow=0,
endRow=2,
total=7,
pages=4,
reasonable=true,
pageSizeZero=false
}
[admin(id=4, username=张三, password=4321), admin(id=5, username=李四, password=21321)]
整合SpringBoot
Mapper
@Repository
//加上MapperScan之后就无需再写@Mapper
public interface adminMapper {
//注解开发
@Select("select * from admin")
//查找所有数据
List<admin> findAll();
}
service层
接口
public interface adminService {
Map<String, Object> findAll(int pageNum,int pageSize);
}
实现类
@Service
public class adminServiceImpl implements adminService {
@Resource
private adminMapper adminMapper;
@Override
public Map<String,Object> findAll(int pageNum,int pageSize) {
PageHelper.startPage(pageNum,pageSize);
List<admin> select = adminMapper.findAll();
PageInfo<admin> pageInfo = new PageInfo<>(select,5);
Map<String, Object> map = new HashMap<>();
map.put("total",pageInfo.getTotal());
map.put("pages",pageInfo.getPages());
map.put("data",pageInfo.getList());
map.put("size",pageInfo.getSize());
map.put("pageSize",pageInfo.getPageSize());
map.put("isIsFirstPage",pageInfo.isIsFirstPage());
map.put("isIsLastPage",pageInfo.isIsLastPage());
map.put("nextPage",pageInfo.getNextPage());
map.put("prePage",pageInfo.getPrePage());
map.put("isHasPreviousPage",pageInfo.isHasPreviousPage());
map.put("isHasNextPage",pageInfo.isHasNextPage());
return map;
}
}
controller
@Resource
private adminService adminService;
//查找所有数据
@GetMapping("findAll/{pageNum}/{pageSize}")
public Map<String, Object> findAll(@PathVariable int pageNum,
@PathVariable int pageSize){
return adminService.findAll(pageNum,pageSize);
}
运行结果
输入4,2,当前页面最后一页
返回内容
- 上一篇: 《MySQL数据库》分页查询及其优化、视图、索引
- 下一篇: ncat命令使用实例
猜你喜欢
- 2024-12-06 玩转单表查询--JPA版
- 2024-12-06 ncat命令使用实例
- 2024-12-06 《MySQL数据库》分页查询及其优化、视图、索引
- 2024-12-06 Basic认证登录设定
- 2024-12-06 三分钟学会使用Mybatis-Plus——笔记
- 2024-12-06 我采访了一位 Pornhub 工程师,聊了这些纯纯的话题
- 2024-12-06 盘点最能延长(缩短)笔记本电脑寿命的浏览器
- 2024-12-06 Landing Page技巧太多,我们只拿实战说话
- 2024-12-06 开发必备-如何实现防重复提交
- 2024-12-06 HP惠普各种打印机脱机自检方法
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)