一、添加pagehelper依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>版本</version>
</dependency>
二、添加配置文件 or 代码配置
#配置文件
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
#代码
@Configuration
@Slf4j
public class PageHelperConfiguration {
@Bean
public PageHelper pageHelper() {
log.info("------ 分页插件配置");
PageHelper pageHelper = new PageHelper();
Properties p = new Properties();
p.setProperty("offsetAsPageNum", "true");
p.setProperty("rowBoundsWithCount", "true");
p.setProperty("reasonable", "true");
//通过设置pageSize=0或者RowBounds.limit = 0就会查询出全部的结果。
p.setProperty("pageSizeZero", "true");
pageHelper.setProperties(p);
return pageHelper;
}
}
三、Controller编写
@GetMapping("/users")
public List<User> querAllLlist(@RequestParam(defaultValue = "1") int pageNo, @RequestParam(defaultValue = "10") int pageSize) {
PageHelper.startPage(pageNo,pageSize);
userService.getUsers();//这个查询会分页
return userService.getUsers();//这个查询不会分页
}
备注:分页代码PageHelper.startPage(pageNo,pageSize);只对其后的第一个查询有效。 添加一个查询,则第二个查询并没有分页
四、返回分页信息
Mapper里将返回值修改为Page
public interface UserMapper {
Page<User> getUsers();
}
Service里将返回值修改为Page
public Page<User> getUsers() {
return userMapper.getUsers();
}
controller类封装Page数据
@GetMapping("/users")
public PageInfo<User> querAllLlist(@RequestParam(defaultValue = "1") int pageNo,@RequestParam(defaultValue = "10") int pageSize) {
PageHelper.startPage(pageNo,pageSize);
PageInfo<User> pageInfo = new PageInfo<>(userService.getUsers());
return pageInfo;
}