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