MyBatis-Plus(四.Page分页查询)

在已经集成了Mybatis Plus的SpringBoot项目中加入如下分页拦截器的配置,让MybatisPlus支持分页

@Configuration
public class MybatisPlusConfiguration {
    //配置分页拦截器
    @Bean
    public MybatisPlusInterceptor getMybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return interceptor;
    }
}

不配置分页拦截器查询的时候selectPage默认查询全部

Page类实现分页查询

@SpringBootTest
public class PageTest{
​
    @Autowired
    UserMapper userMapper;
​
    // 普通分页查询
    @Test
    public void testPage(){
        Page<User> page = new Page<>(2, 3);
        // 第二页, 每页三行
        final Page<User> page1 = userMapper.selectPage(page, null); // 后面也可以加Wrapper
        page.getRecords().forEach(System.out::println); // 既可以取参数的page
        page1.getRecords().forEach(System.out::println); // 也可以取返回的page1
        // 两种方法取得分页结果
        System.out.println(page.getCurrent()); // 当前页
        System.out.println(page.getSize()); // 每页大小
        System.out.println(page.getPages()); // 总页数
        System.out.println(page.getRecords()); // 这一页的内容List集合
    }
    
    // 返回值是Map的分页查询
    @Test
    public void testMap(){
        Page<Map<String, Object>> page = new Page<>(2, 3, false);
        // 注意Page里的泛型是Map
        Page<Map<String, Object>> mapPage = userMapper.selectMapsPage(page, null);
        System.out.println(mapPage);
    }
}

注意这种做法的策略是先查询所有页, 然后从所有页中查询你想要的页

如果定义Page时第三个参数searchCount(是否查询所有)为false, 那么不会查询所有字段, 直接查询某一页

Page<User> page = new Page<>(2, 3, false);
// 第三个参数是是否查询所有

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值