时间:2021-05-19
网上各种解决方案,我试了好久,整合了几篇文章才凑出来,在这里分享一下,实在不想网友们在这里面绕圈子,毕竟,写代码的时间是愉快的,解决bug也是愉快的,但也是一直在bug里面绕圈子就不爽了。
亲自试验:
1) 我的mapper和xml是这样子放置的
2) 在.xml中namespace是这样的:
3) application.properties中mybatis.mapper-locations得这么配置到xml
4) 最后呢,你只要在pom.xml中build下这样配置
5) 按照我这种位置防止,把响应的包名换成自己的,就基本上不会没有什么问题的。
也不用去加什么*Application中去加什么注解@MapperScan(value = "com.acme.shop.mapper")什么的了,不需要呢。
补充知识:mybatis-plus的 mapper.xml 路径配置的坑
问题:
在SpringBoot整合MyBatis时,若mapper映射文件在java路径下,就会一直报错Invalid bound statement (not found): xxx.xxxMapper.selectxx
说明Mapper接口是可以调用到的,问题就出在无法映射到Mapper.xml文件。
同时查看输出target目录下,没有xxxmapper.xml文件的编译结果。
原因:
SpringBoot默认配置情况下,只有resources路径下的xml文件会被扫描。
解决办法:
方法一:【推荐使用】
将mapper映射文件放在resources目录下,通常会在resources目录下建一个mapper目录,存放各种mapper的映射文件,
并且在application.properties中配置 Mapper映射文件的路径为:
#指定myBatis的核心配置文件与Mapper映射文件
mybatis.mapper-locations=classpath:mapper/*.xml
测试成功,查看target目录下,有xxxMapper.xml文件的编译结果。
方法二:
mapper映射文件依旧放在java目录下,
此时,需要在pom.xml文件中添加java路径下xml文件扫描配置,
<build> <resources> <resource> <filtering>true</filtering> <directory>${basedir}/src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>${basedir}/src/main/java</directory> <excludes> <exclude>**/*.xml</exclude> </excludes> </resource> </resources></build>并且在application.properties中配置 Mapper映射文件的路径时要加上包名,
#mybatis.mapper-locations=classpath:包名/*.xml
mybatis.mapper-locations=classpath:org.xiao.dao/*.xml
测试成功,查看target目录下,有xxxMapper.xml文件的编译结果。
以上这篇解决Spring boot整合mybatis,xml资源文件放置及路径配置问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
ssm整合之Spring整合MyBatis框架配置事务1.在applicationContext.xml修改代码如下:
从XML中构建SqlSessionFactory从XML文件中构建SqlSessionFactory的实例非常简单。这里建议你使用类路径下的资源文件来配置.St
sprig-boot是一个微服务架构,加快了spring工程快速开发,以及简便了配置。接下来开始spring-boot与mybatis的整合。1、创建一个mav
前期工作1.导入mybatis整合依赖org.mybatis.spring.bootmybatis-spring-boot-starter2.1.42.连接数据
最近因为项目要求整合了spring+mybatis架构进行项目开发,现将相关整合配置文件整理如下:基本架构:spring+springmvc+mybatis分布