前言

新手在使用mybatis注解开发的时候,往往容易出现各种错误。
上述提到的“Mapped Statements collection does not contain value for xxx”就是常见的一种,出现这个错误表明mybatis没有找到你所使用的查询语句。

错误分析

mapper文件没有被导入

除了忘记导入mapper这种情况外,需要注意的是,使用纯注解开发还不能使用包名的导入方式,例如下面的导入方式在纯注解开发中是无效的,因为纯注解开发并不会用到真实的Mapper类,因此也无法以包名的方式导入。

<mappers><package name="com.modu.mapper"/></mappers>

正确的方式应该是:

<mappers><mapper resource="com/modu/mapper/StudentMapper.xml"/></mappers>

id与使用查询的语句不匹配

简而言之,就是单词写错或者大小写错误之类的问题。
查询要求select语句的id属性,与查询时所用的String必须完全匹配。
遇到这种情况可以检查所用到的单词拼写。