仍是在項目中, 跳出以上提示, 注意以上提示的細節"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), 因此, 少年, 加油吧.學習