仍是在项目中, 跳出以上提示, 注意以上提示的细节"Mapped
"一词, 它是被动语态的, 是"在已经匹配(Mapped)
的语句(Statements)中"的意思, 说明JVM已经找到了一些Mapper的xml文件, 但"does not contain value for XXX", 也就是JVM找到的xml文件中没有你想要使用的'XXX'这款. 那么, 怎么解决这个问题?!html
网上的资料, 大体分类以下:spring
1.命名空间配置错误: <mapper namespace="com.sitech.mapper.StudentMapper">
, 要写全到"StudentMapper"
为止[ref];sql
2.若是使用Maven管理项目, 则多是Mapper的xml文件没有编译到target
中(pom.xml的build配置项)[ref];mybatis
3.还有, 配置中没有引入Mapper的xml文件[ref];app
第3点的状况和个人状况相似, 个人是'引入出错'
(我要引入的文件夹是'mapperXml'
, 却没有修改COPY过来的配置代码, 死活没有去检查这段代码), 错误代码以下(在'spring-mybatis.xml'
中):框架
<!-- 引入myBatis文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mapperLocations" value="classpath*:mapper/*.xml"/> <!-- 上一行末尾: 'mapper'要改为'mapperXml' --> </bean> <!-- 10月30日, 又新增一个错误致使相同的报错, 见下: --> <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xxx.datareport.modules.NewUser.dao.NewUserDao"> <!-- 错误缘由: 大小写没弄对(namespace中的'NewUser'应为小写开头, 由于包文件名是'newUser') --> <select ...> ... </select> </mapper>
错误可以修改掉, 但根本上, 若是不了解整个WEB项目框架的机制, 也只能是修修补补, 东边的砖搬到西边去, 造不了大厦, 因此, 多看官方资料和源码, 以及实践学习
中的习
(即撸码上项目Just_For_Fun), 因此, 少年, 加油吧.学习