<mappers> <mapper resource="com/choco/dao/BlogMapper.xml"/> </mappers>
我在resources下面创建和 main/java同样的目录, 通过resource获取到xml文件, 但是不可以, 我很模糊, 因为之前我是可以的.
解决办法:
- idea里面一次创建例如:com.choco.dao包 和 分三次创建是一样的. 虽然可能无法展开, 但确实效果是一样的
- 如果你的mapper接口和映射xml文件不在一个目录, 比如你把xml文件放在了resources下面, 那么你需要在pom.xml添加这段代码.
src/main/resources
/*.properties
/.xml
.properties
src/main/java
**/
**/*.xml
true
这是因为sqlSessionFactoryBean.setMapperLocations(resolver.getResource(packageSearchPath));
即sqlSessionFactoryBean调用的方法是getResource, 这个方法从类的根路径下获取文件.
而在mybatis里面, mian/java下面类的根路劲为 target/classes
所以只要你的根路劲下面没有xml映射文件, 那么config文件里面,注册mapper就无法成功.
在setting里面没有开启mapUnderscoreToCamelCase, 依然可以识别, 不知道这是不是idea自动做了.