1. 程式人生 > >(原創)常見報錯不常見原因之——org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

(原創)常見報錯不常見原因之——org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

錯誤日誌:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found).....

常見原因:由於mybatis只要mapper.xml檔案有錯誤,就經常會報這用對映錯誤。可能是

namespace錯誤、
resultMap錯誤(type錯誤、屬性錯誤)
sql語句中欄位名與自定義resultmap中column不符
等等

經過排查,這些都沒錯

單元測試也是一直報錯,哪怕mapper.xml是最簡單的sql語句 

曾一度懷疑是編譯的問題,因為mapper.xml是複製過來的

精疲力盡之際,看到網上有人貼了一張圖,是一張idea專案結構圖,靈光一現,驀然回首,才發現,我的資原始檔夾名名名錯了。。。。

我寫的是mapper,然而應該是mappers。。。。

兩個啟發:

一、公司專案結構很大,子專案下很少看到基礎的配置方式,導致這麼低階的錯誤花了一下午加晚飯才搞出來(很菜還不投降)

<bean id="masterSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="wecashDatasource" />
    <property name="mapperLocations">
        <
list> <value>classpath*:config/mappers/*</value> </list> </property>

在基礎依賴裡找到了。。。。。。早點看到就不至於這樣了

二、自己搞不出來就趕緊上網找,自然很多都是廢話,但是總有那麼一個神聖的時刻靈光一現