使用注解方式整合ssm时,启动tomcat扫描不到resource下面的xxxmapper.xml问题,解决方法

解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xxx.mapper.方法
在Spring与Mybatis整合时,可能会遇到这样的报错

原因:

其原因为mapper路径的映射错误,表示在尝试执行某个 Mapper 接口的方法时,MyBatis 无法找到对应的 SQL 语句。

造成该错误的可能方式为:

在mapper接口文件上使用了@Mapper注解,在controller调用方法时则无法找到该方法,只能使用注解方式写sql语句才能被识别到,生成到mapper.xml文件中的sql语句无法被使用

修改方法:

1.将@Mapper注解改为@Reposity

2.在MybatisConfig配置文件中加入扫描mapper映射文件的语句

不要觉得在 MybatisConfig配置文件中的MapperScannerConfigurer类加入mapperScannerConfigurer.setBasePackage("com.xxx.mapper");,程序就可以扫描到xxxMapper.xml文件了,其实不然,还需要在SqlSessionFactoryBean类中加入一个语句:
sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));

这样才能正确扫描到xxxMapper.xml文件和Mapper文件。

相关推荐
寒也26 分钟前
识别法院PDF文件特定字段并插入数据库【正则表达式+本地化部署】
java·数据库·正则表达式·eclipse·pdf·达梦·ruoyi
中国lanwp37 分钟前
Spring Boot 版本与对应 JDK 版本兼容性
java·开发语言·spring boot
懒虫虫~40 分钟前
Spring源码中关于抽象方法且是个空实现这样设计的思考
java·后端·spring
码银42 分钟前
【Java】接口interface学习
java·开发语言·学习
DKPT1 小时前
重构之去除多余的if-else
java·开发语言·笔记·学习·面试
蓝黑20201 小时前
Java如何在遍历集合时删除特定元素
java
掘金詹姆斯1 小时前
如何基于状态机对订单状态实现统一管理?
java·状态机
雨月琉琉1 小时前
Jenkins设置中文显示
java·servlet·jenkins
清风拂山感1 小时前
Java优雅实现判空方法
java·开发语言
救救孩子把1 小时前
Spring Boot 集成Poi-tl实现动态Word文档生成
spring boot·word