org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

第二次遇见这个问题了,上次就是倒腾很久,这次高低得记录下,加深印象!
绑定失败的原因不止一个,有可能是namespace配置的不是mapper接口,或者你的mapper接口中的方法名和mapper.xml中statement的id不对应,还有就是mapper.xml没有加载进来,不外乎这几种吧。我遇到的bug就是mapper.xml没有加载进来,但是又没有报错找不到文件,而是绑定失败,我是反复检查配置文件,生怕哪里对应不上,后来google才发现,idea有一个问题,就是你的xml文件如果不放在webroot下,是不会把该文件输出到target下的,而项目中的mapper.xml文件和mapper接口是放在一起的,在src目录下,所以加载不到绑定失败。
我用的是扫描的方式加载mapper的xml文件

 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.ky.mapper" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean>

在pom.xml文件中加入以下配置

<build>
    <finalName>javaWeb</finalName>
    <!--这段配置解决了无法将src目录下的配置文件打包进输出目录-->
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
      </resource>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
      </resource>
    </resources>
    </build>

然后在target的classess下就看到src目录的xml文件了
这里写图片描述
绑定失败的问题就解决啦

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值