org.apache.ibatis.binding.BindingException: Invalidbound statement (not found)的解决方案和造成原因分析(超详细)

简介: org.apache.ibatis.binding.BindingException: Invalidbound statement (not found)的解决方案和造成原因分析(超详细)

一、问题描述



今天使用SpringBoot整合mybaits时报了绑定异常的错误:


AbstractHandlerExceptionResolver.java:194

|org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver

|Resolved exception caused by handler execution: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.guli.edu.mapper.CourseMapper.getCoursePublishVoById


二、问题分析


       

出现这种错误,首先检查一下自己的xml文件中的id、resultMap等属性有没有写错,我检查了一下,应该都是正确的。

     

再看看target文件夹,xml文件夹为空


b320c404e8aa448998eb907a8a78db69.png


那么这已经可以基本确定问题了。


三、错误原因


     

这个错误是maven默认加载机制造成的问题。maven加载时候,把java文件夹里面.java类型文件进行编译,如果是其他类型文件,则不会被加载。dao层编译后只有class文件,没有mapper.xml,因为maven工程在默认情况下src/main/java目录下的所 有资源文件是不发布到target目录下的。


四、解决方案



1、把mybatis的xml文件直接复制到target目录中

这个方法可以解决问题,但是每次手动复制也挺笨的,不推荐使用


2、把xml文件放在resources目录下

     

resources目录下的文件是会编译的。但是这样的操作会破坏项目结构,特别是自动生成出来的代码,不建议使用这种方法。


3、通过配置解决(推荐使用)


项目中的两个地方都要配置,不要只配置一个地方


(1)pom.xml中


<!-- 项目打包时会将java目录中的*.xml文件也进行打包 -->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>


(2)application.properties中


#配置mapper xml的路径
mybatis-plus.mapper-locations=classpath:com/shang/eduservice/mapper/xml/*.xml


相关文章
|
2月前
|
存储 Apache
Apache Hudi Savepoint实现分析
Apache Hudi Savepoint实现分析
36 0
|
2月前
|
Apache 索引
精进Hudi系列|Apache Hudi索引实现分析(五)之基于List的IndexFileFilter
精进Hudi系列|Apache Hudi索引实现分析(五)之基于List的IndexFileFilter
17 0
|
4月前
|
机器学习/深度学习 SQL 分布式计算
Apache Spark 的基本概念和在大数据分析中的应用
介绍 Apache Spark 的基本概念和在大数据分析中的应用
161 0
|
5月前
|
前端开发 Java Apache
Apache Zeppelin系列教程第七篇——运行paragraph的整个流程分析
Apache Zeppelin系列教程第七篇——运行paragraph的整个流程分析
35 0
|
5月前
|
SQL Java 数据库连接
Apache Zeppelin系列教程第四篇——JDBCInterpreter原理分析
Apache Zeppelin系列教程第四篇——JDBCInterpreter原理分析
34 0
|
4月前
|
机器学习/深度学习 SQL 分布式计算
介绍 Apache Spark 的基本概念和在大数据分析中的应用。
介绍 Apache Spark 的基本概念和在大数据分析中的应用。
|
5月前
|
Java 数据库连接 Shell
Apache Zeppelin系列教程第六篇——Zengine调用Interpreter原理分析
Apache Zeppelin系列教程第六篇——Zengine调用Interpreter原理分析
46 0
|
2月前
|
Apache
Apache Hudi Rollback实现分析
Apache Hudi Rollback实现分析
26 0
|
2月前
|
Java 数据库连接 mybatis
解决Error querying database. Cause: org.apache.ibatis.executor.ExecutorException: No constructor found
解决Error querying database. Cause: org.apache.ibatis.executor.ExecutorException: No constructor found
88 1
|
2月前
|
存储 SQL 消息中间件
Apache Hudi:统一批和近实时分析的存储和服务
Apache Hudi:统一批和近实时分析的存储和服务
36 0

推荐镜像

更多