前言
在使用 IDEA 当作工具使用 Mybatis+Spring 时,总是能碰到 Eclipse 碰不到的“蛋疼问题”,这应该是属于 IDEA 的阵痛期,这个错我已经碰到4次了,而且每次原因还不太同。久病成良医,下一次应该不会再出现了,记录下解决办法,希望能帮到你,因为我已经在这个问题上浪费太多时间了。
情况
Mybatis+Spring 配置有好几种方法。最常用的应该是 Mapper
动态代理开发,但是动态代理配置也有两种。
<!-- Mapper代理的方式开发方式一,配置Mapper代理对象 --> <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <!-- 配置Mapper接口 --> <property name="mapperInterface" value="cn.itcast.mybatis.mapper.UserMapper" /> <!-- 配置sqlSessionFactory --> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean>
<!-- Mapper动态代理开发 开发方式2 扫描 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.guozh.bitbooks.mapper" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> </bean>
一般使用第二种,本人也是使用第二种。如果第二种 首先有几点要确定。
- *Mapper.java 和 *Mapper.xml 命名是否一致
- 是否在一个包下,扫描能不能扫到 .xml。
- *Mapper.xml 的 namespace 配置是否准确,接口方法名是否准确。
以上都是 mybatis 的基本知识,当然第二点 可以不再同一个包下。很多种写法,可能有人喜欢将 *Mapper.xml 放在 resources
下。无所谓,只要能扫描到就可以了。
ok 到这里如果还报错如上错误,和我一样,接着看吧
解决
- 删除编辑后的文件 class,然后
Rebuild
在运行。 - 如果上面方法不行,仔细找找在编译后的classes 中 *Mapper.xml 生成了没,如果没 那一定有问题。
我的项目结构是这样的,并且 *Mapper.xml 放在 java 中。这里就会有一个问题。
idea默认是不编译 src\main\java下的xml文件
所以这就需要我们手动配置下。
- 将 *Mapper.xml 复制一份到 resources 下,记得修改 mybatis 配置文件的路径。
- 在 pom.xml 中配置资源代码
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build>
ok 希望能帮到你。
精选推荐
https://guozh.net/%E4%BB%8Ecsdn%E5%85%8D%E4%B8%8B%E8%BD%BD%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E5%88%B0%E7%BD%91%E7%9B%98%E8%B5%9A%E9%92%B1%E6%A1%88%E4%BE%8B/
https://guozh.net/%E3%80%90%E6%A1%88%E4%BE%8B%E3%80%91youtube%E8%BF%98%E5%85%BB%E6%B4%BB%E4%BA%86%E5%93%AA%E4%BA%9B%E4%BA%BA-%E5%88%86%E4%BA%AB%E7%82%B9%E4%BD%A0%E5%8F%AF%E8%83%BD%E4%B8%8D%E7%9F%A5%E9%81%93%E7%9A%84/
https://guozh.net/%E3%80%90%E6%A1%88%E4%BE%8B%E3%80%91%E5%88%AB%E4%BA%BA%E5%8D%961000%E5%88%80%EF%BC%81%E4%B8%80%E5%A5%97%E6%B2%B9%E7%AE%A1%E8%87%AA%E5%8A%A8%E7%94%9F%E4%BA%A7%E8%A7%86%E9%A2%91%E8%B5%9A%E9%92%B1/
https://guozh.net/%E3%80%90%E6%A1%88%E4%BE%8B%E3%80%91%E6%90%AD%E5%BB%BA-quizzes-%E7%BD%91%E7%AB%99%EF%BC%8C%E6%AF%8F%E5%A4%A9%E8%B5%9A%E5%8F%96-30-50-%E7%BE%8E%E5%85%83/
本文由老郭种树原创,转载请注明:https://guozh.net/idea-org-apache-ibatis-binding-bindingexception-invalid-bound-statement-not-found/
😛
😛 😛 😛
感谢大牛,这个问题搞了半天了,终于解决了 😛