1. 程式人生 > >org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) mybatis無效的繫結宣告

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) mybatis無效的繫結宣告

(1) mapper介面類和mapper.xml是否在同一個包下,檔名稱是否一致(僅字尾不同):經過實際檢驗,這個並不需要在同一個包下面,通常mapper.xml檔案是存放在src/main/resources目錄下,而mapper介面類是在src/main/java目錄下面;名稱是否相同也不重要,我的命名分貝為NumberDao.java和NumberMapper.xml,實際也可以執行成功  (2)mapper.xml的namespace是否是對應介面類的全名(包括包名和類名):這個是必須要保證相同,需要進行檢查,而且全類名最好通過複製,不要自己手動拼寫,容易出錯  (3)mapper介面類的方法名是否與mapper.xml中sql標籤的id相同:這個也需要進行檢查,必須保證一致  (4)mapper.xml檔案中用resultMap,而不用resultType(當sql操作結果是List或其他複雜結果集時) (5) 到target目錄下看是否有mapper.xml檔案生成(按照自己對mapper.xml檔案的路徑配置到target下classes目錄下找),如果沒有可以在pom.xml檔案的<build></build>

之間新增

(6)前面幾項的可能原因都是我從網路上查詢到的,做了所有的修改和檢查,也沒有解決問題,然後發現我要說明的這最後一項才是我這次遇到的問題,這個經歷非常坑,完全沒有考慮到出現這次的問題的情況,用了我整整一天加一晚上的時間……..非常無語。  就是我的專案程式碼最開始是在我這裡開發的,組內另外一名同事用的是IDEA開發,他在向git上提交時,把一個.idea的目錄也上傳到git上(沒用過IDEA,不清楚這個目錄的作用)。我checkout到本地後,發現出現上述異常,怎麼都改不好。最後我在本地刪除了.idea目錄,然後程式居然正常執行起來了,正常執行起來了,正常執行起來了!!!!!!  怎麼也沒想到是因為兩個IDE之間還會有這種影響,還是經驗不足,對其他的IDE瞭解不到位造成用了這麼多時間都沒有解決問題