今天在开发若依项目的时候,我在项目目录中建立了自己的模块,并且写了一些代码进行测试,遇见了这个问题
Invalid bound statement (not found): com.ruoyi.hollyeye.mapper.RoleTBLMapper.selectRoleTBLList
无效绑定语句(未找到):com.ruoyi.hollyeye.mapper.RoleTBLMapper.selectRoleTBLList
我这一看,这是没有找到我自己写的一个mapper文件中的方法啊,在我试了多个mapper方法之后,每个方法都报这个错,可以断定所有的mapper中的方法都不管用,感觉是因为mapper文件没有找到,mybatis没有映射到我的mapper,但是mybatis的插件,是可以找到我的mapper文件的呀?
总结来说:mybatis没有将mapper.class映射到mapper.xml
于是就思考,mybatis是怎么通过mapper中的mapper.class是如何映射到mapper.xml的,我们都知道,它是通过namespace来映射mapper.class的呀,我并没有写错,id也是对应的方法名,入参和出参也没有问题,但是为什么还是找不到我的sql语句呢。
在对比以前的项目时,我发现了微小的区别,若依的mapper.xml是写在resource/mapper/****路径下的,而我之前项目的mapper.xml是写在resource/mapper下的,于是我将mapper.xml文件移动到resource/mapper下
重新启动项目,问题竟然解决了!!
我思考,为什么会这样,为什么若依的mapper.xml文件可以写在单独的包下,而我自己的mapper.xml文件不能。
原来是resource/mapper是mybatis默认的路径,如果你想要将mapper.xml放在别的路径下,你就要自己去做配置,方法如下:
至此,问题解决。
如有不足,私信或者评论指正,肥肠感激。🙋