問題描述,使用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 文件,這樣纔可能動態生成接口的實現類