前言
pagehelper 是 mybatis 提供的分页插件,目前支持 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL 六种数据库。
一、PageInfo 里面的属性
{
"pageNum": 1,// 当前页码
"pageSize": 2,// 设置每页多少条数据
"size": 2,// 当前页有多少条数据
"startRow": 1,// 当前页面第一个元素在数据库中的行号
"endRow": 2,// 当前页面最后一个元素在数据库中的行号
"total": 100,// 总记录数
"pages": 50,// 总页数
"list": [// 受到页码和每页条数控制后的当前页面数据
{
"userId": 58,
"userName": "Arai Mai",
"userSex": "F",
"userAge": 355
},
{
"userId": 87,
"userName": "Arimura Ayano",
"userSex": "F",
"userAge": 245
}
],
"prePage": 0,// 上一页(页面链接使用)
"nextPage": 2,// 下一页(页面链接使用)
"isFirstPage": true,// 是否为第一页
"isLastPage": false,// 是否为最后一页
"hasPreviousPage": false,// 是否有前一页
"hasNextPage": true,// 是否有下一页
}
二、PageInfo 使用
① 引入依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
spring.main.allow-circular-references=true
② pagehelper 代码示例
package com.example.canal.mybatis.controller;
import com.example.canal.mybatis.entity.User;
import com.example.canal.mybatis.service.IUserService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/yang")
public class UserController {
@Resource
private IUserService userServiceImpl;
@PostMapping("/list")
public Object listPages(@RequestBody Map<String, Object> inParam) {
int pageNum = Integer.parseInt(inParam.get("pageNum").toString());
int pageSize = Integer.parseInt(inParam.get("pageSize").toString());
// 只有紧跟着PageHelper.startPage()的sql语句才被pagehelper起作用
PageHelper.startPage(pageNum, pageSize);
List<User> user = userServiceImpl.selectAll();
return new PageInfo<>(user);
}
}
入参
{
"pageNum": "2",
"pageSize": "3"
}