场景说明
????????尽管我使用Mybatis Plus 带来很多方便,但是大多情况下我们需要在一定逻辑下实现对应的业务(失去逻辑的业务没有意义)。
????????于是我的做法,使用代码生成器生成Mybatis Plus 基础方法,然后再定义一个逻辑目录如Biz;同时在此目录下再创建对应的service目录、service\impl 目录、mapper目录、mapper\xml目录。{ps:我没有创建controller目录是因为基础目录里已经有了,直接用就行了}
问题说明
? ? ? ? 问题来了,配置好后总是提示mapper找不到相应的方法:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
排查
1.mapper文件名与xml是否一致
2.包名是否一致
3.接口的返回与提交类型是否一致
4.方法名是否一致
5.是否设置扫描mapper注解
排查结果
以上5种都正常配置,甚至我连Mapper 都全部重新写了,问题仍然存在
重新排查
换个思路:
1.先休息一下,随便走一走。
2.查一下别人的文档
新发现
存放mapper文件与存放xml的文件不存一个目录,会不会是这个问题造成的。
把文件放到mapper目录下,运行通过。
原来是xml文件未找到造成的
?
解决
在application.yml中定义xml路径
mybatis-plus:
global-config:
db-config:
id-type: auto
mapper-locations: classpath:com/example/hrm/complexBiz/mapper/xml/*.xml
总结
????????最近一段时间一直在做项目调研,码子搞少了,所以花了近4个小时才解决问题。所以程序员如果脱离代码时间稍长一些就要花很大时间熟悉。
原创不易,欢迎收藏或转发,转发请注明出处!
|