最近在研究springboot整合mybatisplus,在进行自定义SQL的研究时遇到了一个坑,在此记录一下,抛出的异常是BindingException,异常的内容是Invalid bound statement (not found)。
截图看一下吧:
碰到异常呢,怎么办?总得解决,先是从自身找问题。看看配置,再看看有没有扫描到mapper。但是检查了三四遍,还是没有任何问题。
之后,锁定了一个问题点,在配置依赖的时候:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.2</version>
</dependency>
上下两种依赖,下面的才是springboot整合mybatisplus的正解,而上边的那个呢?也可以使用mybaitsplus的相关条件构造器等,但是原生SQL不能使用。只能使用自定义的SQL。什么是自定义的SQL。就是在XML中自己写的SQL。
而下边的依赖,是只能使用原生的SQL,但是自定义的SQL,最终就会抛出异常,也就是Invalid bound statement (not found)。这个异常。思来想去,也没有一个好的解决办法,想了半个小时。最后重新检查了一边配置文件。发现了问题所在。
在application.yml中的配置出现了问题。
mapper-locations: classpath:/mapper/*.xml
其中,mapper-locations应该指定到自己mapperxml所在的包。而我的xml放在mapping下,所以会出现这个异常,因为找不到xml。
总的来说,还是需要细心,细心,再细心。