关于idea的目录, mybatis里mapper无法用resource获取 和 驼峰命令规则

<mappers> <mapper resource="com/choco/dao/BlogMapper.xml"/> </mappers>
我在resources下面创建和 main/java同样的目录, 通过resource获取到xml文件, 但是不可以, 我很模糊, 因为之前我是可以的.

解决办法:

  1. idea里面一次创建例如:com.choco.dao包 和 分三次创建是一样的. 虽然可能无法展开, 但确实效果是一样的
  2. 如果你的mapper接口和映射xml文件不在一个目录, 比如你把xml文件放在了resources下面, 那么你需要在pom.xml添加这段代码.


    src/main/resources

    /*.properties
    /.xml



    src/main/java

    **/
    .properties
    **/*.xml

    true

这是因为sqlSessionFactoryBean.setMapperLocations(resolver.getResource(packageSearchPath));
即sqlSessionFactoryBean调用的方法是getResource, 这个方法从类的根路径下获取文件.
而在mybatis里面, mian/java下面类的根路劲为 target/classes
所以只要你的根路劲下面没有xml映射文件, 那么config文件里面,注册mapper就无法成功.

在setting里面没有开启mapUnderscoreToCamelCase, 依然可以识别, 不知道这是不是idea自动做了.

原文地址:https://www.cnblogs.com/cuteb/p/13805574.html