問題一:
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