问题一:
mybatisPlus完全兼容mybatis,一般来说直接替换掉就可以了,如果mybatis的数据源不能取消创建的话,就注掉mybatisplus的数据源
//@Configuration
public class DataSourceConfig {
// @Bean(name="dataSource2")
// @ConfigurationProperties(prefix="spring.datasource")
public DataSource dataSource(){
return new DruidDataSource();
}
// 配置事物管理器
// @Bean(name="transactionManager2")
public DataSourceTransactionManager transactionManager(){
return new DataSourceTransactionManager(dataSource());
}
}
这个时候一般启动就没问题了,但是在调用原来的数据库方法是,可能会报错:
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for xx.xxx.xx.listBy
### Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for xx.xxx.xx.listBy
这个时候看看application.yml中的
mybatis-plus.mapper-locations=classpath:/mybatis/mapper/*.xml路径格式是否加上,与mybatis属性名不一样,
问题二:
对于引用的第三方依赖包,其中有使用到数据库查询的,也可能报这个错,原因在于moudle1引用moudle2,moudule2引用moudle3,
而mybatisplus是在moudle3中引用的,当moudle1加载的时候是先加载2,和3,之后再加载moudle1中的其他第三方依赖,这个时候mybatisplus就扫描不到第三方的mapper,从而导致查询报错
解决方法,将第三方依赖已到moudle2中,这样就能扫描了,同时修改mybatisplus的扫描路径为
mybatis-plus.mapper-locations=classpath*:/mybatis/mapper/*.xml