问题起因
我们系统使用Mybatis作为持久层框架,这里不详细描述Mybatis框架的使用方法,我们讲述三种加载mapper的方式总结:
加载普通的xml文件,传入xml的相对路径(相对于类路径) 使用mapper接口的全限定名来加载,若mapper接口采用注解方式,则不需要xml;若mapper接口没有采用注解方式,则mapper接口和xml文件的名称要相同,且在同一个目录 扫描指定包下的所有mapper,若mapper接口采用注解方式,则不需要xml;若mapper接口没有采用注解方式,则mapper接口和xml文件的名称要相同,且在同一目录。
使用第三种方式时,这样就会自动加载com.yogurt.mapper包下的所有mapper,这种方式需要将mapper接口文件和mapper.xml文件都放在com.yogurt.mapper包下,且接口文件和xml文件的文件名要一致。注意,在IDEA的maven开发环境下,maven中还需配置
此时会存在两种情况:
- 将mapper.xml文件配置在
src/main/resources下
;
- 将mapper.xml文件配置在src/main/java目录下。注意,因为
src/main/java
被设定为了源码目录,默认只会将其中的Java文件进行编译打包。
问题出现
上述第二种方式,在调用接口报错如下
解决方案
解决方案呢?当然有,手动将src/main/resources
也添加到配置就可以了。按如下的pom.xml
配置,maven打包时,既能包含src/main/java
下的XML文件,也能包含资源目录(src/main/resources
)下面的资源文件
src/main/java
**/*.xml
src/main/resources
**/*
看都看到这里了,给个赞吧~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)