Всем привет, в этой главе мы добавим функцию запроса пейджинга PageHelper. Если у вас есть какие-либо вопросы, пожалуйста, свяжитесь со мной по адресу mr_beany@163.com. Также попросите руководства великих богов, спасибо
Первый: что такое PageHelper
PageHelper — это простой в использовании бесплатный сторонний плагин физического пейджинга Mybatis с открытым исходным кодом.
Физический пейджинг
Поддерживает 12 общих баз данных. Oracle, MySql, MariaDB, SQLite, DB2, PostgreSQL, SqlServer и т. д.
Он поддерживает несколько страниц
Поддержка общих RowBounds (PageRowBounds), вызов метода PageHelper.startPage, вызов параметра интерфейса Mapper
Два: добавьте зависимости PageHelper
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
Затем щелкните правой кнопкой мыши, чтобы выбрать Maven → Reimport для загрузки зависимостей.
Третий: добавить конфигурацию PageHelper
существуетapplication.properties
добавлено в
logging.level.com.example.demo.dao=DEBUG
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
pagehelper.page-size-zero=true
Четыре: как использовать
UserInfoMapper.xml
<select id="selectAll" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from user_info
</select>
UserInfoMapper
List<UserInfo> selectAll();
UserInfoService
PageInfo<UserInfo> selectAll(Integer page,Integer size);
UserInfoServiceImpl
@Override
public PageInfo<UserInfo> selectAll(Integer page, Integer size) {
//开启分页查询,写在查询语句上方
//只有紧跟在PageHelper.startPage方法后的第一个Mybatis的查询(Select)方法会被分页。
PageHelper.startPage(page, size);
List<UserInfo> userInfoList = userInfoMapper.selectAll();
PageInfo<UserInfo> pageInfo = new PageInfo<>(userInfoList);
return pageInfo;
}
UserInfoController
@ApiOperation(value = "查询用户", notes = "分页查询用户所有")
@ApiImplicitParams({
@ApiImplicitParam(name = "page", value = "当前页码",
dataType = "Integer", paramType = "query"),
@ApiImplicitParam(name = "size", value = "每页显示条数",
dataType = "Integer", paramType = "query")
})
@PostMapping("/selectAll")
public RetResult<PageInfo<UserInfo>> selectAll(@RequestParam(defaultValue = "0") Integer page,
@RequestParam(defaultValue = "0") Integer size) {
PageInfo<UserInfo> pageInfo = userInfoService.selectAll(page, size);
return RetResponse.makeOKRsp(pageInfo);
}
Пятое: введение в переменные-члены PageInfo по умолчанию в PageHelper
//当前页
private int pageNum;
//每页的数量
private int pageSize;
//当前页的数量
private int size;
//当前页面第一个元素在数据库中的行号
private int startRow;
//当前页面最后一个元素在数据库中的行号
private int endRow;
//总记录数
private long total;
//总页数
private int pages;
//结果集
private List<T> list;
//第一页
private int firstPage;
//前一页
private int prePage;
//是否为第一页
private boolean isFirstPage;
//是否为最后一页
private boolean isLastPage;
//是否有前一页
private boolean hasPreviousPage;
//是否有下一页
private boolean hasNextPage;
//导航页码数
private int navigatePages;
//所有导航页号
private int[] navigatepageNums;
Шесть: функциональный тест
адрес:http://192.168.1.104:8080/userInfo/selectAll
Случай 1: параметры не передаются, по умолчанию используется полный запрос
{
"code": 200,
"data": {
"endRow": 2,
"firstPage": 0,
"hasNextPage": false,
"hasPreviousPage": false,
"isFirstPage": false,
"isLastPage": true,
"lastPage": 0,
"list": [
{
"id": 1,
"userName": "Mr_初晨"
},
{
"id": 2,
"userName": "Mr_初晨"
}
],
"navigateFirstPage": 0,
"navigateLastPage": 0,
"navigatePages": 8,
"navigatepageNums": [],
"nextPage": 0,
"orderBy": "",
"pageNum": 0,
"pageSize": 0,
"pages": 0,
"prePage": 0,
"size": 2,
"startRow": 1,
"total": 2
},
"msg": "success"
}
Случай 2: параметрыpage=2&size=1
{
"code": 200,
"data": {
"endRow": 2,
"firstPage": 1,
"hasNextPage": false,
"hasPreviousPage": true,
"isFirstPage": false,
"isLastPage": true,
"lastPage": 2,
"list": [
{
"id": 2,
"userName": "Mr_初晨"
}
],
"navigateFirstPage": 1,
"navigateLastPage": 2,
"navigatePages": 8,
"navigatepageNums": [
1,
2
],
"nextPage": 0,
"orderBy": "",
"pageNum": 2,
"pageSize": 1,
"pages": 2,
"prePage": 1,
"size": 1,
"startRow": 2,
"total": 2
},
"msg": "success"
}
адрес проекта
Код облачного кода:git ee.com/bean также/no SPR…
Адрес гитхаба:GitHub.com/my bean also/no s…
Писать статьи непросто, если это вам поможет, нажмите звездочку
конец
Добавление функции запроса пейджинга PageHelper завершено, и последующие функции будут обновляться одна за другой.Если у вас есть какие-либо вопросы, пожалуйста, свяжитесь со мной по адресу mr_beany@163.com. Также попросите руководства у всех великих богов, спасибо всем.