刚开始用idea 开发java项目,配置的maven,springMVC,mybatis,在调用mapping.xml方法时,总是报错,找不到方法,意思就是找不到xml文件,在网上找了好久,终于找到问题所在了,org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): spring.security.maven.dao.T_userMapper.selectByUserName 这种问题不外乎命名空间这类写错了,可是怎么找不到。 说明下mapper.xml和mapper.java是自动生成的

方法一: 不是代码问题是编译器问题,当然也也许是可以配置的 我用的是intellij idea ,创建的是maven项目。maven的结构就不多了其中java是放置源码的resource是资源文件的,那么按照我们的以前学习mybatis的方法是建议把Mapper.xml的文件放在daomain里面和实体在一起的,淡然这不是一定的路径写对了,爱放哪里原则上没问题的 。可是idea明确了源码和资源文件的放置位置(maven项目),也就是说源码就要会呗编译,当我把xml文件放在java目录下的daomian我再猜想是不是被编译了,才导致找不到方法,于是我把Mapper的映射文件放到资源文件下,改下加载Mpper.xml的路径,结果可以了。问题解决了。其实之前我有一次也是这样解决的,可是我当时不以为然,因为我们一贯是放在daomian下面的。

方法二:(未实践) IDEA中,如果你把xml文件放在java目录下,编译和打包时是不会打包进WEB-INF/classes下的,需要在pom文件中配置:

<build>
    <!--mybatis逆向工程生成代码-->
    <plugins>
      <plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>${mybatis_general.version}</version>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>
    <!--打包时包含源代码包下的资源文件-->
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
      </resource>
    </resources>
  </build>

 

 

posted on 2017-03-21 15:17  卫星恋天2018  阅读(690)  评论(0编辑  收藏  举报