背景
cat,监控不到查询sql,但是可以监控到非查询sql。
原因
加了mybatis分页拦截器就有问题,不加分页拦截器就正常。
代码
@Bean(name = "solidMybatisSqlSessionFactory")
@Primary
public SqlSessionFactory sqlSessionFactory(@Qualifier("solidDruidDataSource") DruidSecretBasicDataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("META-INF/mapper/*Mapper.xml"));
// 分页插件
Interceptor pageHelper = new PageInterceptor();
Properties properties = new Properties();
properties.setProperty("helperDialect","oracle");
properties.setProperty("offsetAsPageNum","true");
properties.setProperty("rowBoundsWithCount","true");
properties.setProperty("pageSizeZero","true");
properties.setProperty("reasonable","true");
properties.setProperty("params","pageNum=start;pageSize=limit;count=countSql");
properties.setProperty("supportMethodsArguments","true");
properties.setProperty("returnPageInfo","check");
pageHelper.setProperties(properties);
//日志监控插件
// bean.setPlugins(new Interceptor[]{new CatMybatisPlugin(),pageHelper}); //加了分页拦截器就有问题
bean.setPlugins(new Interceptor[]{new CatMybatisPlugin()}); //不加就正常
return bean.getObject();
}
解决方法
这个问题本质是因为cat有bug,新版本已经修复(github.com/dianping/ca…
代码区别
1.旧代码
2.新代码 红框里是新增的。只要新增红框里的代码,就可以解决问题。