时间:2021-05-27 08:43:54 | 栏目:JAVA代码 | 点击:次
在Mybatis Plus 3.4.0版本之后PaginationInterceptor插件就失效,新增Mybatis Plus 3.4.0的新内置插件
提示:以下是本篇文章正文内容,下面案例可供参考
在sqlSessionFactoryBean中配置插件
<property name="plugins">
<array>
<bean class="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor"></bean>
</array>
</property>
在sqlSessionFactoryBean中配置插件
<property name="plugins">
<array>
<!-- <bean class="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor">-->
<!-- </bean>-->
<bean class="com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor">
<property name="interceptors">
<list>
<bean class="com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor"></bean>
</list>
</property>
</bean>
</array>
</property>
在sqlSessionFactoryBean中配置插件
<property name="plugins">
<array>
<bean class="com.baomidou.mybatisplus.extension.plugins.SqlExplainInterceptor"></bean>
</array>
</property>
在sqlSessionFactoryBean中配置插件
<property name="plugins">
<array>
<!-- <bean class="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor">-->
<!-- </bean>-->
<!-- <bean class="com.baomidou.mybatisplus.extension.plugins.SqlExplainInterceptor"></bean>-->
<bean class="com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor">
<property name="interceptors">
<list>
<bean class="com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor"></bean>
<bean class="com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor"></bean>
</list>
</property>
</bean>
</array>
</property>
其中com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor就是防止全表更新与删除插件类
其他配置请参照官方文档插件配置
ps:下面看下 Mybatis-plus新版本分页失效,PaginationInterceptor过时问题
3.4.0版本对此部分有更新,如果是旧版本升级,会出现分页失效问题,同时idea会提示PaginationInterceptor过时,新版本改用了MybatisPlusInterceptor

更改新版配置后,分页功能正常,注意DbType.MYSQL改为自己使用的数据库类型,否则分页也不生效
@Configuration
public class MyBatisPlusConfig {
/* 旧版本配置
@Bean
public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor();
}*/
/**
* 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
@Bean
public ConfigurationCustomizer configurationCustomizer() {
return configuration -> configuration.setUseDeprecatedExecutor(false);
}
}