предисловие
Если вы используете mybatis для написания запроса на подкачку, это более хлопотно.Вам нужно сначала написать оператор выбора, чтобы получить количество, а затем написать оператор запроса на пейджинг. Здесь используется мощный плагин ==pagehelper==, который может помочь разработчикам быстро реализовать пейджинг.
преимущество:
- Отвязан от файла sqlmapper.xml и реализован в виде плагина, чтобы избежать прямого написания запроса на подкачку sql
- удобно и быстро
Ввести зависимость pagehelper
Внесите связанные зависимости в pom.xml
<!-- 添加分页插件 pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
Конфигурация в application.yml
# 分页插件
pagehelper:
helperDialect: mysql
reasonable: false
params: count=countSql
supportMethodsArguments: true
проиллюстрировать:
==helperDialect==: Укажите базу данных, если она не указана, тип базы данных будет определен автоматически.
==reasonable==: параметр рационализации, по умолчанию false,
true:页码小于1,查询第一页数据,页码大于总数时,返回最后一页数据;
false:页码小于等于1都返回第一页数据,页码大于总数时返回空
==supportMethodsArguments==: по умолчанию false, true: плагин подкачки автоматически разбивает страницы, если находит подходящее значение в соответствии со значением в параметрах.
добавить интерфейс
dao
List<UserMoudel> findAllByPage();
service
PageInfo<UserMoudel> findAllByPage(int page, int offset);
serviceImpl, здесь основное внимание уделяется реализации, а также это основной код для использования ==pagehelper==
@Override
public PageInfo<UserMoudel> findAllByPage(int page, int offset) {
// 这一句是核心
PageHelper.startPage(page,offset);
List<UserMoudel> all = dao.findAllByPage();
return new PageInfo<UserMoudel>(all);
}
controller
@ApiOperation(value = "分页查询用户信息")
@GetMapping("/findAllByPage")
@ResponseBody
public PageInfo<UserMoudel> findAllByPage(@RequestParam(value = "当前页码",required = true) int page,@RequestParam(value = "每页数量",required = true) int offset){
return userSvc.findAllByPage(page,offset);
}
Протестируйте интерфейс запроса пейджинга
Тест пройден
краткое изложение проблемы
проблема с конфигурацией pagehelper в application.yml
1 Укажите базу данныхдолжениспользуя ==helperDialect==,не хотетьИспользуйте ==dialect==, иначе программа весенней загрузки не запустится со следующим исключением:
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2020-06-14 13:56:42.839 ERROR 2104 --- [ restartedMain] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration': Invocation of init method failed; nested exception is com.github.pagehelper.PageException: java.lang.ClassNotFoundException: mysql
Из исключения видно, что mysql не может быть найден, а затем отладить, и обнаружил, что это проблема с указанной базой данных в конфигурации