org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):mapper路徑

一、問題描述

使用springboot + mybatis的項目在本地可以正常運行,但當使用maven打包部署到遠程服務器上時出現了映射錯誤,異常信息爲:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.xdf.yn.api.mapper.ExamBasTestMapper.findByTestId

二、問題本質是mapper接口與對應的xml未映射上

可能情況:
1.mapper層的方法和mapper.xml中的方法不一樣;
2.mapper中的namespace resultParameter 和對應的dao層entity層不一樣
3.拼寫錯誤 如漏寫 少寫 多寫…

4.如果還報錯,檢查一下部署項目指定目錄下有對應的xml文件嗎(我的是屬於這種情況)

  • war包裏面缺少Mapper對應的xml文件,也就是沒有把xml文件打包進去。
  • 解決辦法是,在pom.xml文件中的build標籤中添加如下代碼,顯示的強制將xml文件打到war包中:
		<!--解決 mapper接口與xml文件方法  映射問題 -->
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>true</filtering>
				<includes>
					<include>**/*</include>
				</includes>
			</resource>

			<resource>
				<directory>src/main/java</directory>
				<filtering>false</filtering>
				<includes>
					<include>**/*.dll</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/java</directory>
				<filtering>false</filtering>
				<includes>
					<include>**/*.so</include>
				</includes>
			</resource>
			<!-- 把xml文件所在的mapper文件夾丟進target/classes/包名/目錄下 -->
			<resource>
		      <directory>src/main/java</directory>
		      <includes>
		         <include>**/*.xml</include>
		      </includes>
		      <!-- 是否替換資源中的屬性-->
		      <filtering>false</filtering>
		    </resource>
		</resources>

最後,重新打包部署,啓動測試OK !

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章