MyBatis-Plus的分页

文章目录

  • 一、配置
  • 二、使用


一、配置

@Configuration
public class MybatisPlusConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor=new MybatisPlusInterceptor();
        //分页拦截器
        PaginationInnerInterceptor paginationInnerInterceptor=new PaginationInnerInterceptor();
        //数据库类型
        paginationInnerInterceptor.setDbType(DbType.MYSQL);
        //溢出总页数后是否进行处理,默认false
        //paginationInnerInterceptor.setOverflow();
        //单页分页条数限制,默认无限制
        //paginationInnerInterceptor.setMaxLimit();
        //方言实现类
        //paginationInnerInterceptor.setDialect();
        interceptor.addInnerInterceptor(paginationInnerInterceptor);
        return interceptor;
    }


    /**
     * 需要设置MybatisConfiguration的useDeprecatedExecutor属性=false,避免缓存出现问题
     * 新版本会移出MybatisConfiguration的useDeprecatedExecutor属性,就无需该方法了
     */
    @Bean
    public ConfigurationCustomizer configurationCustomizer() {
        return configuration -> configuration.setUseDeprecatedExecutor(false);
    }

}

二、使用

/**
 * current:当前页,默认=1
 * size:每页的条数,默认=10L
 *      =-1时
 *         无论current值是多少,都不再执行limit sql  = 查询所有记录
 *         无论isSearchCount值是多少,都不执行count sql,total=0,因为records.size就是总记录数
 * isSearchCount:是否执行count sql:false-不执行,total、pages=0
 */
Page<T> pageParam=new Page<>(long current, long size);
Page<T> pageParam=new Page(long current, long size, boolean isSearchCount);

/**
 *  List  records:用来存放查询出来的数据
 *  long total:表里数据的总记录数
 *  pages:总页数
 *  size:每页显示条数,默认 10
 *  current:当前页,默认1
 *  orders:排序字段信息
 *  optimizeCountSql:自动优化 COUNT SQL,默认true
 *  isSearchCoun:是否进行count查询,默认true
 *  hitCount:是否命中count缓存,默认false
 */
IPage<T> page=userService.page(pageParam,queryWrapper);

你可能感兴趣的:(MyBatis-Plus,mybatis)