使用Mybatis后,在调用接口出现异常:Invalid bound statement (not found): com.xxx.xxx错误的解决,非常规!

如果已经看了很多其他常规的解决办法都没有解决你的问题,请直接看第五点!!!就是路径问题

最近新建了一个项目,重新配置项目环境,引入Mybatis后在调用接口时出现异常:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception!!

跟大家一样看了网上的很多文章和资料,一直都没解决问题。

网上的基本上都是那三步骤:

1:什么Mapper中的方法名和对应xml中对应的id名不一样。

2:xml中的namespace对应的Mapper路径不一样,或者说xml中对应的实体类型不一样或者有错误

3:就是大家常常犯的错误就是什么拼写错误啊等等,仔细检查一下,当你发现你路径或者内容都是编辑器提示或者你自己复制的,那肯定就不是这个问题。

4:一些人把mapper和其对应的xml文件写在了一个地方,然后在pom.xml中又没有配置,就导致找不到对应的mapper文件咯,就在pom.xml中的<build>里加上如下的配置即可。

<!-- 如果不添加此节点在resources外的mybatis的mapper.xml文件都会被漏掉。 -->
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>

5:如果你的mapper和其对应的xml不是写在一起,将xml写在resources中的话,那就不用上面的那个配置。但是你编译后注意项目中target文件夹,注意里面的mapper是否和xml编译到了一起,如下:

如果没有编译到一起,那你就要注意了是否路径出现了问题!!!,打开文件的目录查看你resources下xml的路径是否和你mapper里的路径一样。举例:我的mapper路径是com.financialSystem.mapper.UserMapper,那么你的xml路径在resources里应该也是一摸一样的,然后一些人可能觉得没问题了!但是问题就在这,你不要在编辑器里看,要打开文件夹去看,在resources里创建文件夹是只有叫目录的:

如果你在resources里面使用目录去创建com.financialSystem.mapper,你得到的只会是一个叫com.financialSystem.mapper名字的文件夹,而不是com/financialSystem/mapper这样的一个三层文件夹,但是这却在IDEA里看起来一摸一样的!!特别我是用的MybatisX插件生成的mapper和对应的xml,就出现了这个问题,让我一直以为插件没出错是我其他地方配置出错了。

所以你在resources里面使用目录去创建一样的路径时,你应该把.改成/,即应该输入:com/financialSystem/mapper,这样你创建的就是三层文件夹,这是跟在java包里创建文件夹有点区别的。

我的问题就是因为第五点路径的问题导致一直识别不到,看了一晚上的文章然后第二天重新学习了一些B站的Mybatis内容,突然就意识到了这个问题。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值