自己搭一個項目,spring boot+mybatis-plus,引用mybatis-plus 執行發現自己寫的sql可以執行,執行basemapper里的方法就會出錯,
mybatis-plus Invalid bound statement (not found)
檢查文件(application.yml、mapper.xml等)配置,編譯加載是否正確
發現都沒什么問題,包加載也替換了幾個版本,還是不行,
后面發現需要將mybatis的sqlSessionFactory替換成mybatis-plusd的MybatisSqlSessionFactoryBean
因為是自己寫的sqlSessionFactory加載一直也沒注意到這個問題,使用默認配置應該也沒有這個問題,記錄下
@Bean("sqlSessionFactory")
@Primary
public SqlSessionFactory sqlSessionFactory(@Autowired @Qualifier("dataSource") DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
// Interceptor interceptor = new PageInterceptor();
// Properties properties = new Properties();
// properties.setProperty("helperDialect", "sqlserver");
// properties.setProperty("offsetAsPageNum", "true");
// properties.setProperty("rowBoundsWithCount", "true");
// properties.setProperty("reasonable", "false");
// interceptor.setProperties(properties);
// sqlSessionFactoryBean.setPlugins(new Interceptor[] {interceptor});
return sqlSessionFactoryBean.getObject();
}
