1. 程式人生 > >Mybatis繫結錯誤的原因及其解決整理

Mybatis繫結錯誤的原因及其解決整理

(專案開發某天,遇到這個錯誤,很鬱悶找了幾個小時才有解決)

在使用Maven整合Spring + SpringMVC + MyBatis專案的時候專案的時候報以下錯誤

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

原因一:

Mapper interface和xml檔案的定義對應不上,需要檢查包名,namespace,函式名稱等能否對應上,需要比較細緻的對比,我經常就是寫錯了一兩個字母搞的很長時間找不到錯誤

按以下步驟一一執行:

1:檢查xml檔案所在的package名稱是否和interface對應的package名稱一一對應

2:檢查xml檔案的namespace是否和xml檔案的package名稱一一對應

3:檢查函式名稱能否對應上

4:去掉xml檔案中的中文註釋

5:隨意在xml檔案中加一個空格或者空行然後儲存

原因二:(我是這個原因)

在使用IDEA開發時,打包時,mapper沒有自動複製到響應位置,也會出錯。

maven預設會把src/main/resources下的所有配置檔案以及src/main/java下的所有java檔案打包或釋出到target\classes下面,但是現實我們可能

會在src/main/java下面也放置一些配置檔案如hibernate配置檔案或mybatis mapper配置檔案等,如果不做一些額外配置,那我們打包後的專案可能找

不到這些必須的資原始檔,因此在pom.xml中增加類似如下配置:

	<build>
		<resources>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
			</resource>
		</resources>
	</build>


這是我目前找到的解決方法,如果還有可以在下面留言。