Intellij idea + maven + ssm 處理找不到 mapper文件

問題描述,使用idea來和maven管理工具,開發web項目。在ssm集成的時候出現集成問題

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.gcoreinc.dao.BoxDetailMapper.selectBoxDetailByBoxId

根本原因是,在

1,在eclipse+maven進行ssm 集成時候,mybatis的mapper 文件和接口名字保持一致,放置在一個包下就spring框架就讀取到mapper.xml文件。

 

 

 

2,在idea + maven 的時候再使用這個方法就不行了,因爲idea 的maven工具不會讀取 src/main/java/** 下面的xml文件,解決方法

 

    1)在pom.xml文件中添加以下代碼,目的是告訴maven 項目管理工具,你得把 /src/main/java下面所有路徑的 *.xml 文件都掃描進入classes 文件中

<plugin>
  <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
      <executions>
        <execution>
           <id>copy-xmls</id>
           <phase>process-resources</phase>
           <goals>
                 <goal>copy-resources</goal>
           </goals>
           <configuration>             
              <outputDirectory>${basedir}/target/classes</outputDirectory>
              <resources>
                  <resource>                     
                    <directory>${basedir}/src/main/java</directory>
                    <includes>
                    <include>**/*.xml</include>
                    </includes>
                  </resource>
              </resources>
            </configuration>
          </execution>
     </executions>
</plugin>

 

2)項目結構以及配置需要這樣(推薦),xml文件和java代碼分開容易管理

   1 在spring-mybatis 文件中以下配置

     2 去掃描接口:

     3 項目結構是這樣的

  

 

這樣做是爲了讓項目編譯之後classes的文件中有 mapper/*.xml 文件,這樣纔可能動態生成接口的實現類

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章