学习MyBatis的时候自己动练习时,运行后出现Mapped Statements collection does not contain value for XXX的问题
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for findByEmpno
### Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for findByEmpno
通过检查发现,mapper的核心配置文件中的,映射文件加载方式又忘记加了。。。
<mappers>
</mappers>
而mapper映射文件中又添加了对应ID的select查询,所以报错添加映射文件的加载方式后报错消失。
<select id="findByEmpno" resultType="emp">
select * from emp where empno = #{empno}
</select>
另外,在找相关帖子查错的时候,发现有老哥是mapper映射文件中的ID写错报相同的错误。
<select id="findByEmpno1" resultType="emp">
select * from emp where empno = #{empno}
</select>
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for findByEmpno
### Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for findByEmpno
自己动手试了一下确实报相同的错误。
总结:1、ID写错
2、mapper核心映射文件中mapper映射文件加载没写
特此记录报错的原因,以便回顾以防懵逼。