1、简介
第一次使用IDEA的maven搭建java web项目,和eclipse比感觉有点头疼,头次感觉eclipse比IDEA好用,可能是没有用习惯的缘故吧!好了我来说一下我在搭建Spring和Mybatis整合遇到的坑,最后经过多方搜索和对比解决了问题。
2、细节问题
在网上找了很多的细节问题(如下,摘自https://blog.csdn.net/sundacheng1989/article/details/81630370),然后和我的做对比发现没有任何的问题:
3、根本原因
我看了我的mybatis工程发现mapper文件和接口在main的同包下,经过maven的clean install查看target文件发现,如下图(3-1):
发现根本没有把mapper的文件给编译进来,在执行操作的时候才会报出org.apache.ibatis.binding.BindingException:Invalid bound statement错误。
然后我又把mapper文件给放入resources的文件夹下发,经过clean install查看target文件发现,如下图(3-2):
感觉有点莫名其妙,明明包名相同为什么不放在一个文件夹下,还分开放,好吧执行数据库操作仍然报上面的错误,无奈。。。。
4、解决办法
把mapper文件和接口放在java的同一目录下,如图(3-1)的解决方法是在mybatis工程的pom文件加入:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
原因是因为 idea默认是不编译 src\main\java下的xml文件
加入之后在使用maven -> clean 在 install 就会在编译后的target文件下发现mapper文件和mapper接口在一放起了,
在执行操作发现已经成功了,到这里已经解决了,但在resource文件夹下还不知道怎么解决,欢迎指教!额,浪费了两天的时间在瞎转悠,特此记录一下。。