【java笔记-004】Idea+Mybatis+mapper总是报错Invalid bound statement (not found)

【一定要看到最后】

idea 项目中写了一个接口,用于用户登录,采用的是 xml 映射做的,目录结构如下:

 

运行项目,发现总是报错:

Invalid bound statement (not found): com.xxx.xx.mapper.xxx.UUserBaseMapper.login

英文字面意思就是找不到 mapper 绑定的映射关系声明,简单来讲就是找不到要执行的 sql 语句

我查资料,网上有说 mapper 和 mapper.xml 中的 包名不一样,id 和 方法名不一样,等等,但我检查了,都是没有问题。

然后有说是 idea 编译生成项目的时候,没有将 xml 文件一起打包过去,导致找不到

我照着这个思路去查资料,发现idea 在编译打包的时候确实默认不会将 src/main/java 路径下的 xml 文件打包过去到 target 的 classes 下,于是需要在 pom.xml 配置文件中,添加以下配置文件,明确要求 idea 在编译打包的时候,将 xml 等文件带过去:

<project>
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.yml</include>
                    <include>**/*.xml</include>
                    <include>**/*.tld</include>
                    <include>**/*.jsp</include>
                </includes>
                <filtering>true</filtering>
            </resource>

            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.yml</include>
                    <include>**/*.xml</include>
                    <include>**/*.tld</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
</project>

可以看到上面的配置信息,明确要求  src/main/java  和  src/main/resources 下的所有带有 

.properties   .yml    .xml   .tld  后缀的文件,都在编译打包的时候带过去到 target 的 classes 下

好的,上述步骤搞定,重新 maven clean,再 重建项目,运行,发现还是会报错。

重点来了,重启 idea,重新打开项目,maven clean,再 重建项目,成功了,target 的 classes 下也有该有的文件了

 

 运行可以访问接口,并成功访问数据库了,哈哈哈哈哈

学习加油加油加油!!!!!!


版权声明:本文为adamlevine7原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。