关于这个错误,我列举了几种引起错误的原因,总有一种能帮到你。
首先,这是我的项目目录:
一切都配置好之后,编译运行发现报错了,报了下面的错:
这种问题很常见,导致的原因有很多,我列举在下面:
(1)dao类里要用@Mapper这个注解。
(2)Service的实现类里也要有这个注解。
(3)Mapper.xml里面要写对了。
如图,如果你的parameterType=‘类名’,这种形式书写的,那你要先在application.yml里加上如图第二行配置。
如果你不想加,那你在Mapper.xml里就要这样写:
看了这些图片,不用我多解释,你也应该有个大概的“感觉”了吧,它需要路径映射。
但是!还有第四种可能!
(4)第四种其实在上面我已经说了,只是可能你没有发现,如果是这样,那你可能是和我犯一样的错。
注意啊,我实体类的包名为entitles,而我在application.yml配置的是什么呢?
如图:在红框光标的位置,我I写成了小写,这就导致了路径映射不上。
如果你的Mapper.xml里还是这样写的,那就会报这个错了。
一个字符引发的血案,以此为例,在报这个错时,千万不要想当然的以为自己已经全部对了,仔细检查一下。
而且个人还是觉得在配置文件时推荐新手用application.properties好一点,这比application.yml优先级还要高,格式要求也没有要求得那么严格,新手不容易出错。