MyBatisPlus分页查询
定义配置类
自定义一个配置类MybatisPlusConfig,注意注解@Configuration;
一定要有这个配置类,否则分页查询不生效
package com.example.mybatisplus.Configuer;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor paginationInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
添加分页功能的拦截器
在配置类中指定数据库方言为 MYSQL
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
使用分页方法
在测试类中使用
/**
* 测试 分页查询
*/
@Test
void contextLoads() {
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.isNotNull("id");
// 创建分页对象(1表示第一页;4表示每页大小为4)
Page<User> page = new Page<>(2, 4);
Page<User> result = userMapper.selectPage(page, wrapper);
System.out.println("page == result: " + (page == result));
System.out.println("size: " + result.getSize());
System.out.println("total: " + result.getTotal());
for(User user : result.getRecords()) {
System.out.println(user);
}
}