因为idea默认不编译java目录,所以在配置的时候,很容易出现绑定无效的错误,这个错误解决的办法网上找了很久但是都不是很正确.总结一下,有两大类解决办法.
错误类型:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
第一中解决方案:指定目录:
<!-- /**/ 任意层级任意名称 -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath:com/test/**/*.xml"/>
</bean>
这里有一个很重要的注意点,classpath一定不能少,第一次加了没有问题,第二次没加报了一个冲突错误,血的家训
这种方法,你的mapper文件可以放在java目录下的dao层和**dao.java放在一起没问题,也可以放在resources目录的根目录或者任意文件夹,但是classpath一定不能少,不行可以试试
第二种方法也是网上最多的一种,但是网上给出的都很坑爹,不是很具体,这里希望大家不要在这上面在花费一秒钟时间纠结这个问题,直接拿过去就可以用,
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.*</include> </includes> </resource> </resources>
网上的很多人只给出了下面的代码,如果只有这一部分代码,你的resources文件下的所有文件都不会在编译,希望对大家有所帮助.
<resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource>