新人学习过程中踩坑系列之---mybatis-plus框架需要写入不能直接调用的复杂业务时执行mapper的xml中的sql语句报异常BindingException
1. 问题说明:编写复杂业务需求时,常常不能直接调用mybatis-plus框架直接封装好的方法,所以需要自己在mapper以及xml文件中写入方法和sql语句,这时如果没进行处理常常会报如下错误:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): xxx.xxx.eduservice.mapper.EduCourseMapper.getPublishCourseInfo
2.问题原因:maven默认加载机制的问题。mybatis-plus框架生成代码框架一般将mapper文件放在src/main/java/xxx/mapper目录下,xml文件放在src/main/java/xxx/mapper/xml目录下,都是在java目录下,默认maven加载只加载java目录的Java文件,所以xml没有被编译处理,可以在target目录下查看是否有项目xml文件。
3.解决问题:
- 将xml文件直接放进target目录中。(不推荐,太麻烦)
- 将xml文件直接放入src/main/resources目录下。