Springboot+Mybatisplus替換mybatis整合報錯Mapped Statements collection does not contain value


問題一:

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



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM