解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题

我是用到了maven项目,整合ssm框架,同时运用了mybatis逆向工程
在这里插入图片描述
这个问题真的困扰我了好久!!!!网上的方法大都是Mapper interface和xml文件的定义对应不上,需要检查包名,namespace,函数名称等能否对应上。在我一遍一遍仔细的对照之后,发现我的这些接口以及包名等等并没有错误。。。接下来就是艰难的解决过程:
问题一:
此时我发现了,根据mybatis逆向工程创建的bean实体类和数据库的有些属性名对应不上,比如Department实体类属性是id,数据库的是dept_id,明显这是不可行的。所以这时候我就在连接数据库的url上添加了属性nullCatalogMeansCurrent=true,把所有文件涉及到的连接数据库的url都加上了以上属性。

jdbc.jdbcUrl=jdbc:mysql://localhost:3306/ssm_mycrud?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=UTC&nullCatalogMeansCurrent=true

有人可能会想为什么要拼接这么长的字符串,其实我也不太清楚,可能是和我的mysql版本是8.0的有关吧,用此版本可以能会出现一些异常,具体可以看这篇文章。
https://blog.csdn.net/weixin_40845165/article/details/84140606
问题二:
在我解决了逆向工程生成实体类的属性名对应不上的问题后,发现还是运行不了!!还是出现这个错误。。。。这个错误的意思大概是找不到此mapper文件吧,因为此时target文件下也没看到这些mapper文件,此时只需要在pom.xml中添加此段代码。

<resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>mapper/*Mapper.xml</include>
          <include>*.xml</include>
          <include>*.properties</include>
        </includes>
      </resource>

因为我的目录是把mapper文件夹放在resoures下,如果没有此段代码,是找不到mapper.xml文件在哪里的。
在这里插入图片描述
至于是什么原因造成的,以下文字段复制了其他博主的说法
https://www.cnblogs.com/hzdzkjdxygz/p/8149658.html
原因是:maven默认会把src/main/resources下的所有配置文件以及src/main/java下的所有java文件打包或发布到target\classes下面,但是现实我们可能会在src/main/java下面也放置一些配置文件如hibernate配置文件或mybatis mapper配置文件等,如果不做一些额外配置,那我们打包后的项目可能找不到这些必须的资源文件,因此在pom.xml中增加类似如下配置,这样就会将src/main/java下的xml文件随同java编译后的class文件一同copy到相应的class目录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值