业务要分页,不能一股脑返回,一页一页出。
mysql是这么写:
js
select * from `user` limit 0, 10
前端要传俩参,一个pageNum, 一个pageSize
mybatis-plus的service有通用的方法:
java
/**
* 分页查询
* @param pageNum
* @param pageSize
* @return
*/
@GetMapping("/page")
public Result findPage(@RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(default = "10") Integer pageSize) {
return Result.success(
userService.page(new Page<>(pageNum, pageSize))
);
}
userService.page 用userService的page方法,通过pageNum 和 pageSize,
不是用restful的方式,而是用传统的方式,
前端用就要问号连接符品撒花姑娘参数名进行传递参数,


传入pageSize=2结果都给了,mybatis-plus中要用这个对象,要往springboot容器中注入插件对象,不然使用不了。



目录结构如下:

先在项目中创建一个config
,然后在config下面创建一个MybatisPlusConfig
,

复制官网的代码过去:
java
package com.example.demo.config;
@Configuration
@MapperScan("scan.your.mapper.package")
public class MybatisPlusConfig {
/**
* 添加分页插件
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 如果配置多个插件, 切记分页最后添加
// 如果有多数据源可以不配具体类型, 否则都建议配上具体的 DbType
return interceptor;
}
}
启动类里面的MapperScan就不要了

移到MybatisPlusConfig.java
:
java
package com.example.demo.config;
@Configuration
@MapperScan("com.example.demo.mapper")
public class MybatisPlusConfig {
/**
* 添加分页插件
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 如果配置多个插件, 切记分页最后添加
// 如果有多数据源可以不配具体类型, 否则都建议配上具体的 DbType
return interceptor;
}
}
然后就引入依赖:


分页插件需要引入它的pom管理依赖,再引入它的依赖就可以了。


再去重启一下,重新请求一下接口,就不会一股脑返回来了,pageSize多少就返回多少。

这样就是正确分页返回了。
配置类:

@Configuration注解,告诉springboot我这个类是一个配置类。
@bean注解说明要往springboot容器中注入这个方法返回的对象。这个也是往springboot容器中注入对象的方式,这种是第三种往容器中注入对象的方式。也是一种比较常见的方式。很多的框架配置类都是这种模式往springboo容器注入框架的对象。