springboot+mybatisplus+Druid构建项目的时候,分页一直无效,后发现构建SqlSessionFactory的时候需要手动添加下分页插件拦截器,代码如下:
@Bean(name = "mainSqlSessionFactory")
@Primary
public SqlSessionFactory mainSqlSessionFactory(@Qualifier("mainData") DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setConfiguration(myBatisConfig.getMyBatisConfig());
//手动设置session工厂时,需要手动添加分页插件
Interceptor[] plugins = new Interceptor[1];
plugins[0] = paginationInterceptor();
bean.setPlugins(plugins);
return bean.getObject();
}
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
paginationInterceptor.setLimit(300);
paginationInterceptor.setDialectType(DbType.MYSQL.getDb());
paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
return paginationInterceptor;
}