今天写一个项目的时候要自己写一个sql语句。运行时发现,Invalid bound statement (not found)报错,按照网上的各种方法发现都没用。于是去github上找了好几个类似项目看了看发现,在yml配置文件里,我配置的是
mybatis-plus:
mapper-locations: classpath:/mapper/**/*.xml
而有些项目确是
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
就一个*的区别,我抱着死马当活马医的心态试了试,没想到竟然对了。上网查了一下原因classpath: :表示从类路径中加载资源,classpath:和classpath:/是等价的,都是相对于类的根路径。资源文件库标准的在文件系统中,也可以在JAR或ZIP的类包中。
classpath*::假设多个JAR包或文件系统类路径都有一个相同的配置文件,classpath:只会在第一个加载的类路径下查找,而classpath*:会扫描所有这些JAR包及类路径下出现的同名文件。
*貌似会查的包多一些,但我的mapper文件夹明明就是在类路径下面的,属实是奇了怪了