MyBatisPlus分页插件


MyBatisPlus分页插件

1 配置分页插件

在配置类中添加分页插件

package com.w.mpdemo.config;

import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@MapperScan("com.w.mpdemo.mapper")
public class MyBatisPlusConfig {

// 分页插件
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
return paginationInterceptor;
}
}

开始测试

// 分页查询
@Test
public void testPage() {
//1 创建page对象,传入两个参数- 当前页 和每页显示的 参数
Page<User> page = new Page<>(1,2);
// 调用mp分页查询方法
// 调用mp分页查询过程,底层封装
// 把分页所有数据封装到page对象里面
userMapper.selectPage(page,null);

System.out.println("当前第:"+page.getCurrent()+"页"); // 当前页

for (User u:page.getRecords()) {
System.out.println(u);
}
// System.out.println(page.getRecords()); // page.getRecords()每页数据list集合
System.out.println("每页显示记录:"+page.getSize()); //每页显示记录
System.out.println("总记录:"+page.getTotal()); //总记录数
System.out.println("总页数:"+page.getPages()); //总数页数

System.out.println("是否有下一页"+page.hasNext()); //是否有下一页
System.out.println("是否有上一页"+page.hasPrevious()); //是否有上一页
}

输出结果:

当前第:1页
User(id=1, name=admin, password=123, createTime=null, updateTime=null, version=null)
User(id=25, name=李四, password=123, createTime=null, updateTime=null, version=null)
每页显示记录:2
总记录:4
总页数:2
是否有下一页true
是否有上一页false