Mybatis Plus学习及入门(附代码)一
https://blog.csdn.net/v3424/article/details/122043351
Mybatis Plus 常用操作(附代码)二
https://blog.csdn.net/v3424/article/details/122044980
5. 分页插件
5.1 内置插件
- 主体插件: MybatisPlusInterceptor,该插件内部插件集:
- 分页插件: PaginationInnerInterceptor
- 多租户插件: TenantLineInnerInterceptor
- 动态表名插件: DynamicTableNameInnerInterceptor
- 乐观锁插件: OptimisticLockerInnerInterceptor
- sql性能规范插件: IllegalSQLInnerInterceptor
- 防止全表更新与删除插件: BlockAttackInnerInterceptor
5.2 创建和编写配置类
package com.czxy.config;
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;
/**
* @ClassName MybatisPlusConfig
* @Description TODO
* @Author Administrator
* @Date 2021-12-20 10:25
*/
@Configuration
public class MybatisPlusConfig {
/**
* 配置插件
* @return
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
// 分页插件
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return mybatisPlusInterceptor;
}
/**
* 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
* @return
*/
/*@Bean
public ConfigurationCustomizer configurationCustomizer() {
return configuration -> configuration.setUseDeprecatedExecutor(false);
}*/
}
5.3 测试类实现
/**
* 分页插件
*/
@Test
public void testPage() {
//TODO:分页的参数
Page<Customer> page = new Page<>(1,2);//TODO:1:展示第一页,2:每页展示两条
//TODO:分页查询
customerDao.selectPage(page, null);
//TODO:获得结果
//查询结果
List<Customer> list = page.getRecords();
list.forEach(System.out::println);
//总条数
System.out.println(page.getTotal());
//总页数
System.out.println(page.getPages());
//是否有上一页
System.out.println(page.hasPrevious());
//是否有下一页
System.out.println(page.hasNext());
}