• MyBatis-Spring(三)--Mapped Statements collection does not contain value for...问题解决


    前一篇文章我总结了一下MyBatis-Spring项目使用SqlSessionTemplate配置的用法,其实在测试过程中并不是一帆风顺,遇到了很多的问题,最主要的就是Mapped Statements collection does not contain value for...这个异常信息,具体如下:

    看这句话的意思就是找不到这个方法,那肯定是配置的问题,于是我从头开始检查,我的检查项如下:

    • 检查映射器配置文件中的命名空间是不是对应接口的全限定名;
    • 检查映射器接口中的方法、参数、返回类型和对应mapper.xml文件中sql语句的id一致(重新复制了一下);
    • 检查是否将mapper.xml文件添加到我在SqlSessionFactory(spring中配置)中配置的configLocation值对应的MyBatis配置文件中;
    • 检查我传入SqlSessionTemplate中的sql路径是否是命名空间+sqlId;
    • 检查在SqlSessionFactory(spring中配置)中配置的configLocation值是不是我配置的mybatis配置文件;

    以上的检查项可以说是很全了,但是再次测试,问题依然存在,我真的是脑瓜疼,于是决定不跟它硬碰了,大晚上,还是看看剧好了,于是刷完剧呼呼大睡去了,直到今天早上起来,开始再一次面对这个可恶的bug。其实我上面的mybatis配置文件是mybatis-config2.xml,专门为了测试这种方式新建的,还有另外一个MyBatis-config.xml文件,这是测试其他功能建的,按理说我在我的spring中配置的是mybatis-config2.xml这个,所以MyBatis-config.xml里面的配置是不会影响我测试的,但我还是抱着试一试的心态将我的mapper.xml文件放了一份在MyBatis-config.xml里面,测试了一下,哎,好了!!!于是我想难道其作用的是这个文件,于是我把mybatis-config2.xml,也就是真正使用的,这里面的mapper.xml文件注释掉,再次测试,问题又出现了!!所以说即便我用的是mybatis-config2.xml,但是在另一个mybatis-config.xml中也要引入mapper.xml文件,反正就这样解决了,虽然我觉得不太合理,但是没办法,就是这么神奇!

  • 相关阅读:
    mac的webdriver自动化
    MongoDB win安装后无法远程连接访问
    Fiddler的一些坑: !SecureClientPipeDirect failed: System.IO.IOException
    Mac终端用Sublime打开指定文件或文件夹
    [Spring常见问题]java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
    Flask_Flask-Mail邮件扩展(十三)
    Flask_Flask-Migrate数据迁移扩展(十二)
    Flask + flask_sqlalchemy + jq 完成书籍展示、新增、删除功能
    Flask_CSRF保护(十一)
    SQLAlchemy(十)
  • 原文地址:https://www.cnblogs.com/hellowhy/p/9727984.html
Copyright © 2020-2023  润新知