一、场景
本项目使用mybatis-plus作为orm框架,使用的是以下jar包
compile 'com.baomidou:mybatis-plus-boot-starter:3.4.0'
都知道mybatis可以少写mapper文件,由于个人比较喜欢用mapper.xml写一些复杂聚合的SQL,所以加了mapper文件,最后调用出现异常:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.cxp.dao.UserDao.getUserById
at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:235) ~[mybatis-3.5.5.jar:3.5.5]
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.<init>(MybatisMapperMethod.java:51) ~[mybatis-plus-core-3.4.0.jar:3.4.0]
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.lambda$cachedInvoker$0(MybatisMapperProxy.java:111) ~[mybatis-plus-core-3.4.0.jar:3.4.0]
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) ~[?:1.8.0_212]
at com.baomidou.mybatisplus.core.toolkit.CollectionUtils.computeIfAbsent(CollectionUtils.java:117) ~[mybatis-plus-core-3.4.0.jar:3.4.0]
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.cachedInvoker(MybatisMapperProxy.java:98) ~[mybatis-plus-core-3.4.0.jar:3.4.0]
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) ~[mybatis-plus-core-3.4.0.jar:3.4.0]
二、解决办法:
配置yml文件中的xml扫描路径:
# 一级标签
mybatis-plus:
# xml扫描路径
mapper-locations: classpath:mapper/*/*.xml