在用了 springboot 和 mybatis-plus很久之后, 有一天突然看到配置文件有点繁杂, 想将相同的配置拉到application.yml里, 就在将配置拉过去后, 问题就开始出现了.
在调用 baseMapper.method 的时候, 一直报Invalid bound statement (not found)
, 有几个mapper能调用, 有几个mapper无法调用 && 其中的一个项目能打开, 另外的两个项目打不开, 配置都是一模一样, 并且在同一个包里的 mapper, 有的行,有的不行, 当时就觉得还有这种操作(我就惊呆了)....... 找了整整两天的时间都没发现问题所在, 虽然大致猜测是 mybatis-plus 导致的原因, 但在这两天时间里也找了各种方法, maven 添加路径什么的, 安装了插件也能跟踪到 xml 里方法, 但一运行调用, 就是 匹配不到 mapper ???? 最后终于在 找到了解决方法.
在配置里将 : classpath:/mapper/*Mapper.xml
修改为 classpath*:/mapper/*Mapper.xml
修改后的 classpath 后面加了个 * 号.
导致这个问题的原因是, 在多个模块下都有 mapper, xml 文件. 最初的话是只有一个模块有, 就在几天前(没错,出事的那天)加了个新模块, 也包含了数据库操作的 mapper 和 xml, 然后这个配置就出问题了.
so, 多模块都有db操作的话, 需要写成 classpath*
才不会导致上面的 Invalid bound statement (not found)
问题.