先抄录下其他的解决办法,但并不是我遇到过的问题:
1.mapper.xml中的namespace和实际的mapper文件不一致
2.mapper接口中的方法名和mapper.xml中的id标签不一致
3.上两步的问题都没有,但是还是不行,可能原因就是,没有构建进去,打开target看看对应的mapper.xml文件在不在
4.xxxMapper.java的方法返回值是List,而select元素没有正确配置ResultMap,或者只配置ResultType
5.看下mapper的XML配置路径是否正确,比如:resource目录下的mapper,yml文件却写的mappers;再比如你的mapper放在其他目录下
6.pom.xml文件中配置resource,不然mapper.xml文件就会被漏掉!pom.xml的中配置了resource
7.检查mybatis.mapper-locations有没有写对
以上步骤都试过,都还是报错。
最后,我大概判断应该还是mapper-locations问题,因为反复检查过之后,我的代码是用了generator去生成的,我配置了一个generatorConfig.xml,然后又配置了一个mybaties-generate.properties,但是,这个properties原本是别人打算拿来当application.properties启动配置的,而我直接改成了单独拿来生成代码的配置文件。
所以,这里面的这两个配置参数就相当于没在application.yml里读到:
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
mybatis.type-aliases-package=com.zjqiu.erp.examination.model.dto
将两个参数移回去yml里之后,便能读成功。
又或者,可以直接把mybaties-generate.properties变回去application.properties,也可以生效,一切都是粗心的结果。。。。。。