1. 程式人生 > >mybatis錯誤:Invalid bound statement (not found)

mybatis錯誤:Invalid bound statement (not found)

今天嚮往常一樣搭建一個spring-mybatis專案時,由於一開始dao 的路徑寫錯了,於是手動修改路徑,直接建立了一個叫com.XX.XX.XX的路徑。啟動專案的時候,總是報錯。

Exception in thread "main" java.lang.RuntimeException: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.bm.delay.dao.DelayJobMapper.insert
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.bm.delay.dao.DelayJobMapper.insert
at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:184)
at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:38)
at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:49)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:42)
at com.sun.proxy.$Proxy82.insert(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)

仔細檢查了專案的Mapper.xml,以及Mapper.java,都沒有問題,Mapper的namespace都是正確的,錯誤很詭異。

後來去專案的資料夾中看了一下,發現了問題所在:mapper的資料夾每個都是一個獨立的資料夾,即:com -> XX -> XX -> XX,而我手動改過後,mapper.xml的路徑變為一個整個的com.XX.XX.XX資料夾,所以導致報錯了。把專案中整個的路徑刪除,然後手動一個一個分別建路徑後,雖然肉眼看上去,IDEA自動合併成com.XX.XX.XX,但實際資料夾中已經是多個資料夾層層嵌套了,改過了,專案正常運行了。記錄一下這個詭異的問題,供大家參考。