欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot 整合mybatis 报错Invalid bound statement (not found)

程序员文章站 2022-04-04 23:29:37
...

springboot 整合mybatis后 报错Invalid bound statement (not found) 报错提示很明显(无效的绑定语句 找不到dao接口对应的xxxMapper.xml)

可能的原因:

1、xxxmapper.xml中的namespace未正确配置 

springboot 整合mybatis 报错Invalid bound statement (not found)

1.1、未在dao接口上添加@mapper注解 或者在springboot启动类上未添加包扫描的@mapperscan()注解

springboot 整合mybatis 报错Invalid bound statement (not found)springboot 整合mybatis 报错Invalid bound statement (not found)springboot 整合mybatis 报错Invalid bound statement (not found)

2.1、xxxmapper.xml放到了java目录里面。*例如下图:这样会出现一个问题,即使你在properties里面配置了 mybatis.mapper-locations= classpath:com/dao/*.xml,也没有用,因为编译的时候这个xml文件并没有被自动拉到target里面,毕竟编译的是.java文件而不是xml嘛,所以这时候应该在pom文件里面加上

springboot 整合mybatis 报错Invalid bound statement (not found)

 </build>
        <resources>
            <resource>
                <directory>src/main/java</directory><!--所在的目录-->
                <includes><!--包括目录下的.properties,.xml文件都会扫描到-->
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

 

2.2、如果你把xml放到了resources文件下,那么就只需要配置mybatis.mapper-locations=classpath:*/mapper/*.xml 就可以了,因为构建的时候会把resources里的东西自动拉到classpath***意.classpath意思就是编译后target文件夹下的classes目录.

springboot 整合mybatis 报错Invalid bound statement (not found)

2.3、如果你的xml文件在resources中的目录名称和dao接口的目录名称一致 可以省略application.yml中的mybatis配置

springboot 整合mybatis 报错Invalid bound statement (not found)springboot 整合mybatis 报错Invalid bound statement (not found)springboot 整合mybatis 报错Invalid bound statement (not found)springboot 整合mybatis 报错Invalid bound statement (not found)

备注:配置完成后 记得maven clean && rebuild一下 查看target 下编译结果

相关标签: errors